Gson(List<Object>转String 、String转List<Object>)

要在Java项目中使用Gson库,你需要添加相应的依赖项。以下是在Maven项目的pom.xml文件中添加Gson依赖的示例:

<dependencies>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.9</version>
    </dependency>
</dependencies>

这样,你就可以在Java项目中使用Gson库来处理JSON数据了。Gson是一个功能强大的JSON解析器,它可以帮助你轻松地将Java对象与JSON格式之间进行转换。

**

1、List转String

**

在Java中,可以使用Gson库将List转换为String。首先,确保你已经添加了Gson库的依赖。然后,使用Gson对象的toJson()方法将列表转换为JSON字符串。

import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        // 创建一个包含不同类型对象的列表
        List<Object> myList = new ArrayList<>();
        myList.add(1);
        myList.add("hello");
        myList.add(true);

        // 创建Gson对象
        Gson gson = new Gson();

        // 将列表转换为JSON字符串
        String jsonString = gson.toJson(myList);

        // 打印结果
        System.out.println(jsonString);
    }
}

上述代码中,我们创建了一个包含整数、字符串和布尔值的列表。然后,使用Gson对象的toJson()方法将其转换为JSON字符串。最后,打印输出结果。

请注意,Gson库默认会将列表转换为JSON数组形式。如果你希望将列表转换为其他格式的字符串,可以根据需要对Gson进行配置。

**

2、String转List

**

使用Gson对象的fromJson()方法将字符串解析为对象列表。以下是一个示例代码片段:

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        // 创建一个包含不同类型对象的JSON字符串
        String jsonString = "[1, \"hello\", true]";

        // 创建Gson对象
        Gson gson = new Gson();

        // 定义要转换的目标类型
        Type listType = new TypeToken<ArrayList<Object>>(){}.getType();

        // 将JSON字符串解析为对象列表
        List<Object> myList = gson.fromJson(jsonString, listType);

        // 打印结果
        System.out.println(myList);
    }
}

上述代码中,我们创建了一个包含整数、字符串和布尔值的JSON字符串。然后,使用Gson对象的fromJson()方法将其解析为对象列表。为了指定目标类型,我们使用了Gson提供的TypeToken类来获取泛型类型的Type对象。最后,打印输出结果。

请注意,由于JSON字符串中的值可以是不同类型的,因此返回的对象列表中的元素将是Object类型。如果需要将元素转换为特定类型,可以在解析后进行类型转换操作。

相关推荐
蓝天星空37 分钟前
spring cloud gateway 3
java·spring cloud
罗政42 分钟前
PDF书籍《手写调用链监控APM系统-Java版》第9章 插件与链路的结合:Mysql插件实现
java·mysql·pdf
一根稻草君1 小时前
利用poi写一个工具类导出逐级合并的单元格的Excel(通用)
java·excel
kirito学长-Java1 小时前
springboot/ssm网上宠物店系统Java代码编写web宠物用品商城项目
java·spring boot·后端
木头没有瓜1 小时前
ruoyi 请求参数类型不匹配,参数[giftId]要求类型为:‘java.lang.Long‘,但输入值为:‘orderGiftUnionList
android·java·okhttp
奋斗的老史1 小时前
Spring Retry + Redis Watch实现高并发乐观锁
java·redis·spring
high20111 小时前
【Java 基础】-- ArrayList 和 Linkedlist
java·开发语言
老马啸西风1 小时前
NLP 中文拼写检测纠正论文 C-LLM Learn to CSC Errors Character by Character
java
Cosmoshhhyyy2 小时前
LeetCode:3083. 字符串及其反转中是否存在同一子字符串(哈希 Java)
java·leetcode·哈希算法