Array数组和List的序列化和反序列化

一、前言

数组类型对象和普通对象一样,使用toJson/fromJson即可完成序列化与反序列化。

二、Array数组的序列化和反序列化

1.创建User类

java 复制代码
public class User {
    @Expose
    private String userName;
    @Expose
    private String password;
    @Expose
    private int age;
    @Expose
    private boolean isStudent;
    @Expose
    private Job job;

    public String getUserName() {
        return userName;
    }

    public String getPassword() {
        return password;
    }

    public int getAge() {
        return age;
    }

    public boolean isStudent() {
        return isStudent;
    }

    public void setJob(Job job) {
        this.job = job;
    }

    public Job getJob() {
        return job;
    }

    public User(String userName, String password, int age, boolean isStudent) {
        this.userName = userName;
        this.password = password;
        this.age = age;
        this.isStudent = isStudent;
    }
}

2.创建Job类

java 复制代码
public class Job {
    private String name;
    private  int salary;

    public Job(String name, int salary) {
        this.name = name;
        this.salary = salary;
    }

    @Override
    public String toString() {
        return "job{" +
                "name='" + name + '\'' +
                ", salary=" + salary +
                '}';
    }
}

3.Array数组序列化和反序列化代码实现

java 复制代码
public class ArrayListUnitTest {
    @Test
    public void testArray() {
        User[] user1 = new User[3];
        //创建java对象
        user1[0] = new User("Anglin1", "123", 18, false);
        user1[1] = new User("Anglin2", "123", 88, true);
        //创建Gson对象
        Gson gson = new Gson();

        //序列化
        String json = gson.toJson(user1);
        System.out.println("序列化:"+json);

        //反序列化
        User[] user2 = gson.fromJson(json, User[].class);
        System.out.println("反序列化0:"+user2[0]);
        System.out.println("反序列化1:"+user2[1]);
        System.out.println("反序列化2:"+user2[2]);
    }
}

4.运行结果

三、List集合的序列化和反序列化

1.在原来user类和job类的基础上实现List集合的序列化和反序列化

java 复制代码
public class ArrayListUnitTest {
 

    @Test
    public void testListObject() {
        List<User> list1 = new ArrayList<>();
        list1.add(new User("Anglin1","123",18,false));
        list1.add(new User("Anglin2","123",22,true));
        list1.add(null);

        //创建Gson提供的gson对象
        Gson gson = new Gson();
        //序列化
        String json = gson.toJson(list1);
        System.out.println(json);

        //反序列化
        Type type = new TypeToken<List<User>>(){
        }.getType();
        List<User> list2= gson.fromJson(json,type);
        System.out.println(list2.get(0));
        System.out.println(list2.get(1));
        System.out.println(list2.get(2));
    }
}

2.运行结果

相关推荐
油丶酸萝卜别吃35 分钟前
utils.js 说明文档
开发语言·javascript·ecmascript
rannn_1113 小时前
【力扣hot100】链表专题|160、206、234、141、142
java·算法·leetcode·链表·面试·开发
leisoo80973 小时前
100GBA股股票数据怎么存ClickHouseRedisMySQLJSON完整对比
大数据·linux·服务器·开发语言·python
不会代码的小猴4 小时前
21. 泛型编程上
开发语言·c++·笔记·算法
IKUN家族5 小时前
Spring IoC&DI
java·spring·rpc
一只旭宝5 小时前
细讲C加加【9】C++ std::function与std::bind详解|仿函数、绑定器、类成员绑定、占位符、成员偏移指针
开发语言·c++·算法
山荷枝6 小时前
03-框架--Spring
java·后端·spring
ChaHae-In6 小时前
SpringBoot统一功能处理
java·spring boot·后端
coder!mq7 小时前
说几个常见的语法糖?
java·开发语言·算法
gugucoding7 小时前
38. 【Java】Stream API(下):高级操作与性能
java·开发语言