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]

  

com.alibaba.fastjson.JSON对类对象的序列化与反序列化的更多相关文章

  1. 【json】使用json和java对象的序列化和反序列化

    TOC [[TOC]] 依赖 fastxml Jackson JSON Tutorial Do-JSON-with-Jackson.pdf-很详细 Creating Java List from JS ...

  2. Json与类对象转换

    Json在js,jquery中可以直接使用,比如下串: { "from":"en" ,"to":"zh" ," ...

  3. 利用JavaScriptSerializer类 进行Json对象的序列化和反序列化和过滤

    项目下载:JavaScriptSerializer_对JSON对象序列化与反序列化及过滤器 利用<JavascriptSerializer类> 进行Json对象的序列化和反序列化 1. 首 ...

  4. com.alibaba.fastjson.JSON.parseObject

    Journal 日志实体 Journal journal = com.alibaba.fastjson.JSON.parseObject(jsonStr, new com.alibaba.fastjs ...

  5. Android Json转换类对象,并使用

    长话短说,先上代码(今天的代码是有史以来最短的)(今天的课也是有史以来最精简...) 然后就是介绍Song是啥,上面的网站应该知道,是网易云的,不过为啥会变成这样,因为这是网易云的API网站 反正就是 ...

  6. Java对象的序列化与反序列化-Json篇

    说到Java对象的序列化与反序列化,我们首先想到的应该是Java的Serializable接口,这玩意在两个系统之间的DTO对象里面可能会用到,用于系统之间的数据传输.或者在RPC(远程方法调用)时可 ...

  7. (记录)Jedis存放对象和读取对象--Java序列化与反序列化

    一.理论分析 在学习Redis中的Jedis这一部分的时候,要使用到Protostuff(Protobuf的Java客户端)这一序列化工具.一开始看到序列化这些字眼的时候,感觉到一头雾水.于是,参考了 ...

  8. java中对象的序列化和反序列化

    [对象的序列化和反序列化 ] 1.定义:序列化--将对象写到一个输出流中.反序列化则是从一个输入流中读取一个对象.类中的成员必须是可序列化的,而且要实现Serializable接口,这样的类的对象才能 ...

  9. Java对象的序列化与反序列化

    序列化与反序列化 序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程.一般将一个对象存储至一个储存媒介,例如档案或是记亿体缓冲等.在网络传输过程中,可以是字节或是 ...

随机推荐

  1. 数据压缩之经典——哈夫曼编码(Huffman)

    (笔记图片截图自课程Image and video processing: From Mars to Hollywood with a stop at the hospital的教学视频,使用时请注意 ...

  2. 2-Sat小结

    关于2-sat,其实就是一些对于每个问题只有两种解,一般会给出问题间的关系,比如and,or,not等关系,判定是否存在解的问题.. 具体看http://blog.csdn.net/jarjingx/ ...

  3. Brain Rules: 12 Principles for Surviving and Thriving at Work, Home, and School

    选自 https://litemind.com/brain-rules/

  4. day09_雷神_模块二

    day09 序列化之json 之前我们学习过用eval内置方法可以将一个字符串转成python对象,不过,eval方法是有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊 ...

  5. linux中yum命令的解析

    yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RP ...

  6. SSD 相关基础知识

    SDD 基础知识 SSD(Solid State Drives)是固态硬盘,使用闪存颗粒来存储数据,闪存又可分为NAND Flash和NOR Flash,通常所说的SSD硬盘都使用NAND Flash ...

  7. Mac怎么安装并配置Homebrew?

    1.在打开的命令行工具中输入如下语句: 复制内容到剪贴板 ruby -e "$(curl --insecure -fsSL https://raw.githubusercontent.com ...

  8. Could not find installable ISAM

    程序中去读EXCEL文档,以前一直参考<Asp.net读取Excel文件 2>http://www.cnblogs.com/insus/archive/2011/05/05/2037808 ...

  9. 重识 PWA 进阶到 workbox3

    看到PWA,似曾相识,但又感觉很模糊,于是乎,又重新翻阅文档,学习了一遍,顺便把相关知识学习了一下,比如service worker,workbox3. PWA 概念: 全称:Progressive ...

  10. 用开源 ASP.NET MVC 程序 Bonobo Git Server 搭建 Git 服务器(转)

    用开源 ASP.NET MVC 程序 Bonobo Git Server 搭建 Git 服务器   现在不用Git,都不好意思说自己是程序员. 当你想用Git,而源代码服务器是Windows系统时,你 ...