无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

編程小知識(shí)【java-0011】java常用開發(fā)庫-json庫

2023-06-15 08:03 作者:退役程序員老馬  | 我要投稿

Java中并沒有內(nèi)置JSON的解析,因此使用JSON需要借助第三方類庫。

常用的 JSON 類庫:

  • FastJson: 阿里巴巴開發(fā)的 JSON 庫,性能優(yōu)秀。

  • Jackson: 社區(qū)十分活躍且更新速度很快。

  • Gson: 谷歌開發(fā)的 JSON 庫,功能十分全面。

相關(guān)源碼、文檔可前往github查看。

FastJson

Fastjson 是一個(gè) Java 庫,可以將 Java 對(duì)象轉(zhuǎn)換為 JSON 格式,當(dāng)然它也可以將 JSON 字符串轉(zhuǎn)換為 Java 對(duì)象。

優(yōu)點(diǎn):

  • 提供服務(wù)器端、安卓客戶端兩種解析工具,性能表現(xiàn)較好。

  • 提供了 toJSONString() 和 parseObject() 方法來將 Java 對(duì)象與 JSON 相互轉(zhuǎn)換。調(diào)用toJSONString方 法即可將對(duì)象轉(zhuǎn)換成 JSON 字符串,parseObject 方法則反過來將 JSON 字符串轉(zhuǎn)換成對(duì)象。

  • 允許轉(zhuǎn)換預(yù)先存在的無法修改的對(duì)象(只有class、無源代碼)。

  • Java泛型的廣泛支持。

  • 允許對(duì)象的自定義表示、允許自定義序列化類。

  • 支持任意復(fù)雜對(duì)象(具有深厚的繼承層次和廣泛使用的泛型類型)。

缺點(diǎn):

  • FastJson 源碼質(zhì)量較低

  • FastJson Bug、漏洞較多

  • FastJson 犧牲多數(shù)場(chǎng)景下的穩(wěn)定性而提高的效率

ps:fastjson2在2022年發(fā)布了,它是fastjson的重要升級(jí),目標(biāo)是為下一個(gè)十年提供一個(gè)高性能的JSON庫, fastjson2性能相比原先舊的 fastjson有了很大提升,并且 fastjson2更安全,完全刪除autoType白名單,提升了安全性。但是是否像官方說的那樣有巨大提升,我們還要拭目以待。

JackSon

3個(gè)核心模塊:

  • Streaming: jackson-core jar,定義了底層的streaming API和實(shí)現(xiàn)了Json特性。

  • Annotations: jackson-annotations jar,包含了標(biāo)準(zhǔn)的Jackson注解。本文暫不介紹。

  • Databind: jackson-databind jar,實(shí)現(xiàn)了數(shù)據(jù)綁定和對(duì)象序列化,它依賴于streaming和annotations的包。

優(yōu)點(diǎn):

  • 性能較高,解析速度快。

  • 支持多種數(shù)據(jù)格式,包括JSON、XML、YAML等。

  • 支持?jǐn)?shù)據(jù)綁定,可以將JSON數(shù)據(jù)直接綁定到Java對(duì)象上。

  • 支持注解,可以通過注解來控制序列化和反序列化的過程。

  • 社區(qū)活躍,文檔齊全,使用廣泛。

缺點(diǎn):

  • 配置較為復(fù)雜,需要掌握較多的API。

  • 對(duì)于復(fù)雜的數(shù)據(jù)結(jié)構(gòu),需要手動(dòng)編寫代碼來處理。

Gson

Gson是谷歌開發(fā)的 JSON 庫,目前功能最全的 JSON 庫,它可以將Java對(duì)象轉(zhuǎn)換為相應(yīng)的JSON形式,也可以將JSON字符串轉(zhuǎn)換為對(duì)應(yīng)的Java對(duì)象。 Gson可以使用任意Java對(duì)象,包括哪些預(yù)先存在的、不在你的源代碼中的對(duì)象(因此,你并不知道對(duì)象的屬性)。

優(yōu)點(diǎn):

  • 輕量

  • 簡(jiǎn)潔

  • 功能全面

缺點(diǎn):

  • 性能對(duì)比Fastjson、jackson稍差



編程小知識(shí)【java-0011】java常用開發(fā)庫-json庫的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
北票市| 新乡县| 石门县| 荣成市| 宁都县| 泰安市| 胶州市| 樟树市| 宝山区| 镶黄旗| 伽师县| 格尔木市| 沙雅县| 称多县| 临夏市| 水富县| 蕉岭县| 舞阳县| 嘉祥县| 盐津县| 鸡泽县| 文昌市| 阜宁县| 甘德县| 建始县| 明星| 东安县| 乃东县| 进贤县| 临泽县| 浮梁县| 高密市| 疏勒县| 抚宁县| 咸宁市| 塘沽区| 永定县| 比如县| 满洲里市| 盐亭县| 莫力|