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

相关推荐
魔道不误砍柴功1 小时前
Java 中如何巧妙应用 Function 让方法复用性更强
java·开发语言·python
NiNg_1_2341 小时前
SpringBoot整合SpringSecurity实现密码加密解密、登录认证退出功能
java·spring boot·后端
闲晨1 小时前
C++ 继承:代码传承的魔法棒,开启奇幻编程之旅
java·c语言·开发语言·c++·经验分享
测开小菜鸟3 小时前
使用python向钉钉群聊发送消息
java·python·钉钉
P.H. Infinity4 小时前
【RabbitMQ】04-发送者可靠性
java·rabbitmq·java-rabbitmq
生命几十年3万天4 小时前
java的threadlocal为何内存泄漏
java
caridle4 小时前
教程:使用 InterBase Express 访问数据库(五):TIBTransaction
java·数据库·express
^velpro^4 小时前
数据库连接池的创建
java·开发语言·数据库
苹果醋34 小时前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx
秋の花4 小时前
【JAVA基础】Java集合基础
java·开发语言·windows