Json In Java

JSON簡介

JSON格式: []代表數(shù)組。 {}代表對象,里面是鍵值對。也可以直接寫value。


使用ORG.JSON包來解析JSON:


ORG.JSON
ORG.JSON通過MAP構(gòu)造
ORG.JSON通過OBJ構(gòu)造

【net.sf.json和org.json區(qū)別】
https://my.oschina.net/wangwu91/blog/340721?fromerr=Jas5ObXx
項目中主要使用net.sf.json,似乎支持springmvc,且org.json無法從一個string解析成一個obj。


Gson:
通過Gson.builder來定制化Gson進行屬性名字映射、格式化打印、日期格式轉(zhuǎn)換,然后用gson.toJson(obj)來轉(zhuǎn)換Obj-> json,gson.FromJson(string,obj.class)
默認轉(zhuǎn)義html中的一些格式。


Jackson提供三種可選的Json處理方法:流式API(Stream)、樹模型(Tree Model)、數(shù)據(jù)綁定(Data Binding)

  1. DataBinding: 定義一個ObjectMapper來轉(zhuǎn)化對象為JSON和反序列化JSON為對象,涉及到的一些配置屬性在ObjectMapper中定義。
  2. 將Object定義成一個一個樹節(jié)點,然后轉(zhuǎn)化為JSON
  3. 使用JsonFactory創(chuàng)建一個JsonGenerator實例,然后利用這個實例逐個寫入域。

總結(jié):
Stream API方式是開銷最低、效率最高,但編寫代碼復(fù)雜度也最高,在生成Json時,需要逐步編寫符號和字段拼接json,在解析Json時,需要根據(jù)token指向也查找json值,生成和解析json都不是很方便,代碼可讀性也很低。
Databinding處理Json是最常用的json處理方式,生成json時,創(chuàng)建相關(guān)的java對象,并根據(jù)json內(nèi)容結(jié)構(gòu)把java對象組裝起來,最后調(diào)用writeValue方法即可生成json,
解析時,就更簡單了,直接把json映射到相關(guān)的java對象,然后就可以遍歷java對象來獲取值了。
TreeModel處理Json,是以樹型結(jié)構(gòu)來生成和解析json,生成json時,根據(jù)json內(nèi)容結(jié)構(gòu),我們創(chuàng)建不同類型的節(jié)點對象,組裝這些節(jié)點生成json。解析json時,它不需要綁定json到j(luò)ava bean,根據(jù)json結(jié)構(gòu),使用path或get方法輕松查找內(nèi)容。


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

  • 速度快
  • 功能強大
  • 零依賴
  • JsonObject <-> str
    • str->JsonObject
    • JsonObject->str
  • Object <-> str
    • str -> Object
    • Object -> str
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容