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. hdu 5058 set应用

    http://acm.hdu.edu.cn/showproblem.php?pid=5058 set应用 水题 #include <cstdio> #include <cstdlib ...

  2. Android中去掉标题栏

    在Android中去掉标题栏有三种方法,它们也有各自的特点. 1.在代码里实现 this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏 记 ...

  3. iOS计算UIWebView的高度和iOS8之后的WKWebView的高度问题

    当我们涉及到webView和自定义控件结合的时候,例如一个资讯详情,上半部分是webView,下面位置想加上我们的自定义控件,可可以计算出webView的高度,在刷新界面. 下边是计算UIWebVie ...

  4. petaPoco

    petaPoco出现在2011年...因此老鸟可忽略该贴...目前最新版是 5.0, 但核心文件变化不大. 在众多的ORM框架中, 其中不乏非常优秀的EF, 但今天仍然想写点关于PetaPoco的文字 ...

  5. Elasticsearch 系列4 --- Windows10安装Kibana

    Kibana是Elastic Stack家族内的一部分,它是一个管理网站,与ES(Elastic Search)集成可以用来管理ES的索引,除ES外它还可以跟Elastic家族的其他组件进行整合如lo ...

  6. 【CJOJ2616】 【HZOI 2016】偏序 I(cdq分治,树状数组)

    传送门 CJOJ Solution 考虑这是一个四维偏序对吧. 直接cdq套在一起,然后这题有两种实现方法(树状数组的更快!) 代码实现1(cdq+cdq+cdq) /* mail: mleautom ...

  7. OCP考试062题库出现大量新题-19

    choose three Which three statements are true about Oracle Data Pump? A) Oracle Data Pump export and ...

  8. 浏览器特权域XSS漏洞

    导语:科普什么是浏览器特权域XSS,可以用来干什么? 作者:天析 团队:Arctic Shell 为什么科普这个? 今天在群里看到有表姐说这个,然后恰好又有学姐在问什么是特权域XSS,于是就来说说这个 ...

  9. 解放双手 | Jenkins + gitlab + maven 自动打包部署项目

    前言 记录 Jenkins + gitlab + maven 自动打包部署后端项目详细过程! 需求背景 不会偷懒的程序员不是好码农,传统的项目部署,有时候采用本地手动打包,再通过ssh传到服务器部署运 ...

  10. ajax请求报语法错误

    今天改代码修正完一个ajax请求后,调试发现出错进error方法,查看错误信息报语法错误,具体是调用parseJSON方法时出错,因为我是用json方式传递的参数,所以第一时间查看data参数是否正确 ...