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类型。如果需要将元素转换为特定类型,可以在解析后进行类型转换操作。

相关推荐
wangjialelele4 小时前
Linux中的进程管理
java·linux·服务器·c语言·c++·个人开发
历程里程碑4 小时前
普通数组----轮转数组
java·数据结构·c++·算法·spring·leetcode·eclipse
晔子yy5 小时前
如何设计让你的程序同时处理10w条数据
java
Yvonne爱编码5 小时前
链表高频 6 题精讲 | 从入门到熟练掌握链表操作
java·数据结构·链表
lpfasd1235 小时前
物联网后端岗位java面试题
java·物联网·php
毕设源码李师姐5 小时前
计算机毕设 java 基于 java 的图书馆借阅系统 智能图书馆借阅综合管理平台 基于 Java 的图书借阅与信息管理系统
java·开发语言·课程设计
忆~遂愿5 小时前
Runtime 上下文管理:计算实例的生命周期、延迟最小化与上下文切换优化
java·大数据·开发语言·人工智能·docker
powerfulhell5 小时前
寒假python作业5
java·前端·python
1尢晞15 小时前
Java学习
java·开发语言
阿杰真不会敲代码5 小时前
Mybatis-plus入门到精通
java·tomcat·mybatis