内容目录
- JSON简介
- JSON是什么
- 结构与类型
- JSON优秀资源
- JSON在线解析工具
- JSON类库
- 性能测试对比
- FastJson
- Fastjson 简介
- Fastjson 特性
- 下载和使用
- 序列化一个对象成JSON字符串
- 反序列化一个JSON字符串成Java对象
- 对于日期的处理
- Bean和数组转换
- 设置字段名
- 设置是否不序列化某字段
- 设置字段顺序
- 自定义序列化和反序列化
- FastJson漏洞问题
- JackSon
- JackSon简介
- Jackson组件
- Jackson的使用
- 序列化一个对象成JSON字符串
- 反序列化一个JSON字符串成Java对象
- 常用注解
- GSON
- Gson简介
- Gson的目标
- Gson的使用
- 序列化
- 反序列化
- 自定义序列化和反序列化机制
- 参考文章
- 更多内容
最强常用开发库总结 - JSON库详解
JSON应用非常广泛,对于Java常用的JSON库要完全掌握。@pdai
JSON简介
JSON是什么
- JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
- JSON 是轻量级的文本数据交换格式
- JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。
- JSON 具有自我描述性,更易理解
结构与类型
- 只有两种结构:对象内的键值对集合结构和数组,对象用{}表示、内部是”key”:”value”,数组用[]表示,不同值用逗号分开
- 基本数值有7个: false / null / true / object / array / number / string
- 再加上结构可以嵌套,进而可以用来表达复杂的数据
一个简单实例
{
"Image": {
"Width": 800,
"Height": 600,
"Title": "View from 15th Floor",
"Thumbnail": {
"Url": "http://www.example.com/image/481989943",
"Height": 125,
"Width": "100"
},
"IDs": [116, 943, 234, 38793]
}
}
JSON优秀资源
- awesome-json
JSON在线解析工具
- JSON 在线解析
JSON类库
Java中并没有内置JSON的解析,因此使用JSON需要借助第三方类库。
下面是几个常用的 JSON 解析类库:
- FastJson: 阿里巴巴开发的 JSON 库,性能十分优秀。
- Jackson: 社区十分活跃且更新速度很快。
- Gson: 谷歌开发的 JSON 库,功能十分全面。
性能测试对比
从下面的测试结果可以看出,序列化次数比较小的时候,Gson性能最好,当不断增加的时候到了100000,Gson明细弱于Jackson和FastJson, 这时候FastJson性能是真的牛,另外还可以看到不管数量少还是多,Jackson一直表现优异。而那个Json-lib可以直接忽略。
- JSON序列化性能
- JSON反序列化性能