Java JSON转List实体对象

在Java开发中,经常需要进行JSON字符串与Java对象之间的转换。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端数据传输。而List是Java中的一个常见的集合类型,用于存储一组有序的对象。本文将介绍如何将JSON字符串转换为List实体对象的方法。

1. 使用Jackson库

Jackson是一个强大的Java库,用于处理JSON数据。它提供了一组API,可以方便地将JSON字符串转换为Java对象。在使用Jackson之前,需要将其添加到项目的依赖中,可以通过Maven或Gradle进行引入。

以下是一个使用Jackson进行JSON转换的示例代码:

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.util.List;

public class JsonToListConverter {

    public static void main(String[] args) {
        String json = "[{\"name\":\"Alice\",\"age\":25},{\"name\":\"Bob\",\"age\":30}]";

        ObjectMapper mapper = new ObjectMapper();
        try {
            List<Person> personList = mapper.readValue(json, new TypeReference<List<Person>>() {});
            for (Person person : personList) {
                System.out.println(person.getName() + ", " + person.getAge());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    static class Person {
        private String name;
        private int age;

        // getters and setters
    }
}

在上述代码中,首先定义了一个Person类作为实体对象,包含name和age两个属性。然后使用Jackson库中的ObjectMapper类将JSON字符串转换为List<Person>对象。readValue方法接收两个参数,第一个参数是JSON字符串,第二个参数是TypeReference对象,用于指定目标对象的类型。最后,遍历List<Person>对象并打印结果。

2. 使用Gson库

Gson是另一个常用的JSON库,它提供了简便的API用于处理JSON数据。与Jackson类似,使用Gson进行JSON转换也需要将其添加到项目的依赖中。

以下是一个使用Gson进行JSON转换的示例代码:

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.util.List;

public class JsonToListConverter {

    public static void main(String[] args) {
        String json = "[{\"name\":\"Alice\",\"age\":25},{\"name\":\"Bob\",\"age\":30}]";

        Gson gson = new Gson();
        List<Person> personList = gson.fromJson(json, new TypeToken<List<Person>>() {}.getType());
        for (Person person : personList) {
            System.out.println(person.getName() + ", " + person.getAge());
        }
    }

    static class Person {
        private String name;
        private int age;

        // getters and setters
    }
}

在上述代码中,使用了Gson库的fromJson方法将JSON字符串转换为List<Person>对象。fromJson方法接收两个参数,第一个参数是JSON字符串,第二个参数是TypeToken对象,用于指定目标对象的类型。与Jackson不同的是,Gson可以直接通过new TypeToken<List<Person>>() {}.getType()获取目标对象的类型。

总结

本文介绍了两种常用的方法将JSON字符串转换为List实体对象,分别使用了Jackson和Gson库。无论选择哪种方法,都需要确保依赖库已正确引入,并了解转换过程中的数据结构。通过这种转换,可以方便地在Java中操作JSON数据,并将其转换为更方便处理的对象形式。

参考文献: [Jackson - GitHub]( [Gson - GitHub](

gantt
    dateFormat  YYYY-MM-DD
    title       JSON转List实体对象甘特图

    section 任务准备
    依赖库引入          :done,    des1, 2022-12-01, 1d

    section 使用Jackson库进行转换
    定义实体类          :done,    des2, 2022-12-02, 1d
    编写转换代码          :done,    des3, 2022-12-03, 2d

    section 使用Gson库进行转换
    编写转换代码          :         des4, 2022-12-05, 2d

    section 总结