博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
com.alibaba.fastjson.JSON对类对象的序列化与反序列化
阅读量:6849 次
发布时间:2019-06-26

本文共 2381 字,大约阅读时间需要 7 分钟。

1. 目标

把类的对象存储到字符串可存储

2. 类定义

public interface JsonInterface {}
mport com.alibaba.fastjson.JSON;import lombok.Getter;import lombok.Setter;@Setter@Getterpublic class JsonVo implements JsonInterface {    private String id;    private String name;    public JsonVo(String id, String name) {        super();        this.id = id;        this.name = name;    }    @Override    public String toString() {        return String.format("id:%s   ||||  name:%s", id, name);    }}

3. 测试

public void test() {        JsonInterface tmp = new JsonVo("id1", "name1");        String json = JSON.toJSONString(tmp);        System.out.println(json);        JsonInterface jsonVo = JSON.parseObject(json, JsonVo.class);        System.out.println(jsonVo);        System.out.println("--------");        byte[] bytes = JSON.toJSONBytes(tmp);        System.out.println(bytes);        JsonInterface jsonVo2 = JSON.parseObject(bytes, JsonVo.class);        System.out.println(jsonVo2);    }

结果

{"id":"id1","name":"name1"}id:id1   ||||  name:name1--------[B@383534aaid:id1   ||||  name:name1

4. Fastjson

Fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库。Fastjson接口简单易用,已经被广泛使用在缓存序列化、协议交互、Web输出、Android客户端等多种应用场景

5. TypeReference

例1

public void test2() {        List
list = new ArrayList<>(); list.add(1); list.add(9); list.add(4); list.add(8); JSONObject jsonObj = new JSONObject(); jsonObj.put("a", list); System.out.println(jsonObj); List
list2 = jsonObj.getObject("a", new TypeReference
>(){}); System.out.println(list2); }

结果

{"a":[1,9,4,8]}[1, 9, 4, 8]

例2

public void test3() {        List
list = new ArrayList<>(); list.add(new JsonVo("id1", "name1")); list.add(new JsonVo("id2", "name2")); list.add(new JsonVo("id3", "name3")); JSONObject jsonObj = new JSONObject(); jsonObj.put("a", list); System.out.println(jsonObj); List
list2 = jsonObj.getObject("a", new TypeReference
>(){}); System.out.println(list2); }

结果

{"a":[{"id":"id1","name":"name1"},{"id":"id2","name":"name2"},{"id":"id3","name":"name3"}]}[id:id1   ||||  name:name1, id:id2   ||||  name:name2, id:id3   ||||  name:name3]

  

转载地址:http://oxrul.baihongyu.com/

你可能感兴趣的文章