JAVA JSON字符串转List详解

发布时间:2023-05-21

一、JSON简介

JSON(全称为JavaScript Object Notation)是一种轻量级数据交换格式,它以纯文本方式表示数据,易于阅读和编写。JSON适用于客户端和服务端之间的数据传输,它的主要作用是替代XML和其他复杂的数据传输格式。JSON格式的数据具有良好的可读性和可维护性,因此在常见的API接口中广泛应用。

二、JAVA字符串转JSON

JAVA字符串转JSON需要借助相关的JSON库,常用的JSON库有Gson和Jackson等。以Gson为例,下面是将JAVA对象转换为JSON格式的示例代码:

import com.google.gson.Gson;
public class Person {
    private String name;
    private int age;
    /*getter and setter方法*/
    public static void main(String[] args) {
        Person person = new Person();
        person.setName("Alice");
        person.setAge(20);
        Gson gson = new Gson();
        String json = gson.toJson(person);
        System.out.println(json);
    }
}

运行结果为:

{"name":"Alice","age":20}

代码中,首先定义了一个Person类,然后使用Gson对象将Person对象转换为JSON格式的字符串。转换过程中,可以使用相关的配置选项对JSON字符串的格式进行调整,例如可以设置缩进等参数。转换完成后,这个JSON字符串就可以用于数据传输、存储、解析等操作。

三、JAVA JSON字符串转List

1、使用Gson将JSON字符串转List

将JSON字符串转换为List需要借助相关的JSON库,以Gson为例,下面是将JSON字符串转List的示例代码:

import com.google.gson.Gson;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
public class Person {
    private String name;
    private int age;
    /*getter and setter方法*/
    public static void main(String[] args) {
        Gson gson = new Gson();
        String json = "[{\"name\":\"Alice\",\"age\":20},{\"name\":\"Bob\",\"age\":22}]";
        Type type = new TypeToken<List<Person>>(){}.getType();
        List<Person> list = gson.fromJson(json, type);
        for (Person person : list) {
            System.out.println("Name: " + person.getName() + ", Age: " + person.getAge());
        }
    }
}

运行结果为:

Name: Alice, Age: 20
Name: Bob, Age: 22

代码中,首先定义了一个Person类,然后使用Gson对象将JSON字符串转换为List对象。在转换过程中,需要指定转换的类型,因为Gson不能够识别泛型类型。转换过程完成后,就可以像操作普通的List对象一样,对转换得到的List对象进行循环遍历、操作等操作。

2、使用Jackson将JSON字符串转List

Jackson是另外一个常用的JSON库,下面是使用Jackson将JSON字符串转List的示例代码:

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class Person {
    private String name;
    private int age;
    /*getter and setter方法*/
    public static void main(String[] args) {
        ObjectMapper mapper = new ObjectMapper();
        String json = "[{\"name\":\"Alice\",\"age\":20},{\"name\":\"Bob\",\"age\":22}]";
        try {
            List<Person> list = mapper.readValue(json, new TypeReference<List<Person>>() {});
            for (Person person : list) {
                System.out.println("Name: " + person.getName() + ", Age: " + person.getAge());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

运行结果与使用Gson相同。 代码中,使用ObjectMapper对象将JSON字符串转换为List对象。同样需要指定转换的类型,因为Jackson也不能够识别泛型类型。在转换过程中,还可以使用相关的配置选项对JSON字符串的格式进行调整。

四、总结

本文主要介绍了JAVA字符串转List的相关知识,从JSON的介绍开始,逐一讲解了使用Gson和Jackson两个常用JSON库的示例代码。在实际开发中,需要根据具体的应用场景选择合适的JSON库和转换方式,并注意对数据类型的定义和转换。