com.alibaba.fastjson.JSON對類對象的序列化與反序列化


1. 目標

把類的對象存儲到字符串可存儲

2. 類定義

public interface JsonInterface {
}
mport com.alibaba.fastjson.JSON;
import lombok.Getter;
import lombok.Setter;

@Setter
@Getter
public 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@383534aa
id:id1   ||||  name:name1

4. Fastjson

Fastjson是一個Java語言編寫的高性能功能完善的JSON庫。它采用一種“假定有序快速匹配”的算法,把JSON Parse的性能提升到極致,是目前Java語言中最快的JSON庫。Fastjson接口簡單易用,已經被廣泛使用在緩存序列化、協議交互、Web輸出、Android客戶端等多種應用場景

5. TypeReference

例1

 public void test2() {
        List<Integer> 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<String> list2 = jsonObj.getObject("a", new TypeReference<List<Integer>>(){});
        System.out.println(list2);
    }

結果

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

例2

public void test3() {
        List<JsonVo> 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<String> list2 = jsonObj.getObject("a", new TypeReference<List<JsonVo>>(){});
        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]

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM