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.运行结果

相关推荐
未来之窗软件服务2 分钟前
幽冥大陆(二)RDIFSDK 接口文档:布草洗涤厂高效运营的技术桥梁C#—东方仙盟
开发语言·c#·rdif·仙盟创梦ide·东方仙盟
猎板PCB黄浩8 分钟前
从废料到碳减排:猎板 PCB 埋容埋阻的绿色制造革命,如何实现环保与性能双赢
java·服务器·制造
ZzzK,9 分钟前
JAVA虚拟机(JVM)
java·linux·jvm
西红柿维生素15 分钟前
JVM相关总结
java·jvm·算法
小冯记录编程18 分钟前
C++指针陷阱:高效背后的致命危险
开发语言·c++·visual studio
1uther38 分钟前
Unity核心概念⑨:Screen
开发语言·游戏·unity·c#·游戏引擎
C_Liu_1 小时前
C++:类和对象(下)
开发语言·c++
coderxiaohan1 小时前
【C++】类和对象1
java·开发语言·c++
阿幸软件杂货间2 小时前
Office转PDF转换器v1.0.py
开发语言·pdf·c#
扯淡的闲人2 小时前
多语言编码Agent解决方案(5)-IntelliJ插件实现
开发语言·python