最强常用开发库总结 - JSON库详解

本文深入探讨了Java中常用的JSON库,包括FastJson、Jackson和Gson。介绍了各库的基本概念、特性、使用方法以及性能测试。FastJson以其高性能著称,Jackson在性能和功能上表现出色,Gson则提供了简单的API。文章还提醒开发者注意FastJson的安全问题,并提供了性能测试结果以供参考。
摘要由CSDN通过智能技术生成

内容目录

  • 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库详解

JSON类库

Java中并没有内置JSON的解析,因此使用JSON需要借助第三方类库。

下面是几个常用的 JSON 解析类库:

  • FastJson: 阿里巴巴开发的 JSON 库,性能十分优秀。
  • Jackson: 社区十分活跃且更新速度很快。
  • Gson: 谷歌开发的 JSON 库,功能十分全面。

性能测试对比

从下面的测试结果可以看出,序列化次数比较小的时候,Gson性能最好,当不断增加的时候到了100000,Gson明细弱于Jackson和FastJson, 这时候FastJson性能是真的牛,另外还可以看到不管数量少还是多,Jackson一直表现优异。而那个Json-lib可以直接忽略。

  • JSON序列化性能

最强常用开发库总结 - JSON库详解

  • JSON反序列化性能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值