Java用Gson将Json数组转成List<对象>

前言

分享一个Gson将Json字符串数组转换成List对象列表的代码,转换前后如下图:

Json字符串数组转前后

项目中需要引入Jar包:

        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.0</version>
        </dependency>

代码片断


import com.google.common.collect.Lists;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.junit.Test;

import java.util.List;

/**
 * @Description: json数组转List
 */
public class JsonListTest {
    @Data
    @AllArgsConstructor
    class Student {
        private Integer uid;
        private String name;
    }

    @Test
    public void builderJson() {
        Gson gson = new Gson();
        List<Student> studentList = Lists.newArrayList(new Student(1, "张同学")
                , new Student(2, "李同学")
                , new Student(3, "王同学"));
        String json = gson.toJson(studentList);
        System.out.println(json);
    }

    @Test
    public void testGson() {
        Gson gson = new Gson();
        //单个对象这样转
        String str = gson.toJson(new Student(1, "张同学"));
        Student student = gson.fromJson(str, Student.class);
        System.out.println(student.toString());
        //json 数组转list
        String json = "[{\"uid\":1,\"name\":\"张同学\"},{\"uid\":2,\"name\":\"李同学\"},{\"uid\":3,\"name\":\"王同学\"}]";
        List<Student> dataList = gson.fromJson(json, new TypeToken<List<Student>>() {
        }.getType());
        for (Student stu : dataList) {
            System.out.println(stu.toString());
        }
    }
}

画重点

关键代码


觉得有用就分享收藏,关注我更多有价值的文章会第一时间推荐给你![玫瑰][玫瑰][玫瑰]

举报
评论 0