Java中JSONString转List

在Java开发中,我们经常需要将JSON字符串转换为List对象。JSON是一种轻量级的数据交换格式,而List是Java中常用的集合类型之一。本文将介绍如何使用Java中的JSON库将JSON字符串转换为List对象,并提供代码示例。

什么是JSON

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,具有易读、易写的特点。它常用于前后端数据的传输和存储,尤其在Web开发中广泛使用。

JSON使用键值对的形式来表示数据,数据由逗号分隔。键值对中的键是字符串,值可以是字符串、数字、布尔值、对象、数组等类型。

以下是一个简单的JSON示例:

{
    "name": "John",
    "age": 30,
    "isStudent": true,
    "hobbies": ["reading", "coding", "music"],
    "address": {
        "city": "Beijing",
        "street": "Main Street"
    }
}

使用Java中的JSON库

Java中有多个开源的JSON库可供使用,如Jackson、Gson、Fastjson等。这些库提供了丰富的API用于处理JSON数据。

在本文中,我们将以Jackson库为例,介绍如何使用Java中的JSON库将JSON字符串转换为List对象。

添加依赖

首先,我们需要在项目中添加Jackson库的依赖。

Maven项目可以在pom.xml文件中添加以下依赖:

<dependencies>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.12.3</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.12.3</version>
    </dependency>
</dependencies>

Gradle项目可以在build.gradle文件中添加以下依赖:

dependencies {
    implementation 'com.fasterxml.jackson.core:jackson-core:2.12.3'
    implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.3'
}

JSON字符串转List

接下来,我们将演示如何将JSON字符串转换为List对象。假设有如下JSON字符串:

[
    {
        "name": "John",
        "age": 30,
        "isStudent": true
    },
    {
        "name": "Alice",
        "age": 25,
        "isStudent": false
    }
]

我们可以使用Jackson库的ObjectMapper类将JSON字符串转换为List对象。下面是代码示例:

import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.List;

public class JsonToListExample {
    public static void main(String[] args) {
        String jsonString = "[{\"name\":\"John\",\"age\":30,\"isStudent\":true},{\"name\":\"Alice\",\"age\":25,\"isStudent\":false}]";

        ObjectMapper objectMapper = new ObjectMapper();

        try {
            List<Person> personList = objectMapper.readValue(jsonString, new TypeReference<List<Person>>() {});
            for (Person person : personList) {
                System.out.println(person.getName());
                System.out.println(person.getAge());
                System.out.println(person.isStudent());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

class Person {
    private String name;
    private int age;
    private boolean isStudent;

    // 省略getter和setter方法
}

在上面的代码中,我们首先创建了一个ObjectMapper对象,它是Jackson库中用于处理JSON的核心类。然后,我们使用readValue方法将JSON字符串转换为List对象。由于List中的元素类型是自定义的Person类,我们使用TypeReference类来指定List的类型。

最后,我们遍历List对象并输出其中的属性值。

运行结果

当我们运行上面的代码时,将会得到如下的输出:

John
30
true
Alice
25
false

输出结果包含了JSON字符串中每个对象的属性值。

总结

本文介绍了如何使用Java中的JSON库将JSON字符串转换为List对象。首先,我们添加了Jackson库的依赖。然后,我们使用ObjectMapper类将JSON字符串转换为List对象。最后,我们遍历List对象并访问其中的属性值。