Json In Java

Json In Java_第1张图片
JSON简介

JSON格式: []代表数组。 {}代表对象,里面是键值对。也可以直接写value。


使用ORG.JSON包来解析JSON:


Json In Java_第2张图片
ORG.JSON
Json In Java_第3张图片
ORG.JSON通过MAP构造
Json In Java_第4张图片
ORG.JSON通过OBJ构造

【net.sf.json和org.json区别】
https://my.oschina.net/wangwu91/blog/340721?fromerr=Jas5ObXx
项目中主要使用net.sf.json,似乎支持springmvc,且org.json无法从一个string解析成一个obj。


Gson:
通过Gson.builder来定制化Gson进行属性名字映射、格式化打印、日期格式转换,然后用gson.toJson(obj)来转换Obj-> json,gson.FromJson(string,obj.class)
默认转义html中的一些格式。


Jackson提供三种可选的Json处理方法:流式API(Stream)、树模型(Tree Model)、数据绑定(Data Binding)

  1. DataBinding: 定义一个ObjectMapper来转化对象为JSON和反序列化JSON为对象,涉及到的一些配置属性在ObjectMapper中定义。
  2. 将Object定义成一个一个树节点,然后转化为JSON
  3. 使用JsonFactory创建一个JsonGenerator实例,然后利用这个实例逐个写入域。

总结:
Stream API方式是开销最低、效率最高,但编写代码复杂度也最高,在生成Json时,需要逐步编写符号和字段拼接json,在解析Json时,需要根据token指向也查找json值,生成和解析json都不是很方便,代码可读性也很低。
Databinding处理Json是最常用的json处理方式,生成json时,创建相关的java对象,并根据json内容结构把java对象组装起来,最后调用writeValue方法即可生成json,
解析时,就更简单了,直接把json映射到相关的java对象,然后就可以遍历java对象来获取值了。
TreeModel处理Json,是以树型结构来生成和解析json,生成json时,根据json内容结构,我们创建不同类型的节点对象,组装这些节点生成json。解析json时,它不需要绑定json到java bean,根据json结构,使用path或get方法轻松查找内容。


FastJson
https://segmentfault.com/a/1190000011212806

  • 速度快
  • 功能强大
  • 零依赖
  • JsonObject <-> str
    • str->JsonObject
    • Json In Java_第5张图片
      JsonObject->str
  • Object <-> str
    • str -> Object
    • Object -> str

你可能感兴趣的:(Json In Java)