2. 媽呀,Jackson原來是這樣寫JSON的
沒有人永遠18歲,但永遠有人18歲。本文已被 https://www.yourbatman.cn 收錄,裡面一併有Spring技術棧、MyBatis、JVM、中介軟體等小而美的專欄供以免費學習。關注公眾號【BAT的烏托邦】逐個擊破,深入掌握,拒絕淺嘗輒止。
目錄
前言
各位好,我是A哥(YourBatman)。
有人說Jackson小眾?那麼請先看看上篇文章吧。學Jackson價效比特別高,因為它使用廣泛、會的人少,因此在團隊內如果你能精通,附加價值的效應就會非常明顯了...
我撓頭想了想,本系列來不了虛的,只能肝。本系列教程不僅僅教授基本使用,目標是搞完後能夠解決日常99.99%的問題,畢竟每個小團隊都最好能有某些方面的小專家,畢竟大家都不乏遇見過一個技術問題卡一天的情況。只有從底層把握,方能遊刃有餘。
命名為core的模組一般都不簡單,jackson-core
自然也不例外。它是三大核心模組之一,並且是核心中的核心
此模組提供了最具底層的Streaming JSON解析器/生成器,這組流式API屬於Low-Level API,具有非常顯著的特點:
- 開銷小,損耗小,效能極高
- 因為是Low-Level API,所以靈活度極高
- 又因為是Low-Level API,所以易錯性高,可讀性差
jackson-core模組提供了兩種處理JSON的方式(縱纜整個Jackson共三種):
- 流式API:讀取並將JSON內容寫入作為離散事件 ->
JsonParser
讀取資料,而JsonGenerator
負責寫入資料 - 樹模型:JSON檔案在記憶體裡以樹形式表示。此種方式也很靈活,它類似於XML的DOM解析,層層巢狀的
作為“底層”技術,應用級開發中確實接觸不多。為了引起你的重視,提前預告一下:Spring MVC
對JSON訊息的轉換器AbstractJackson2HttpMessageConverter
它就用到了底層流式API -> JsonGenerator寫資料。想不想拿下Spring呢?我想你的答案應該是Yes吧~
相信做難事必有所得,你我他都會用的技術、都能解決的問題,那絕成不了你的核心競爭力,自然在團隊內就難成發光體。
版本約定
原則:均選當前最新版本(忽略小版本)
- Jackson版本:
2.11.0
- Spring Framework版本:
5.2.6.RELEASE
- Spring Boot版本:
2.3.0.RELEASE
- 內建的Jackson和Spring版本均和