分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

com.alibaba.fastjson.JSON对类对象的序列化与反序列化

发布时间:2023-09-06 02:20责任编辑:郭大石关键词:jsjson

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<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]

  

com.alibaba.fastjson.JSON对类对象的序列化与反序列化

原文地址:https://www.cnblogs.com/kaituorensheng/p/9886425.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved