1. 程式人生 > >jackson學習之一:基本資訊

jackson學習之一:基本資訊

### 歡迎訪問我的GitHub [https://github.com/zq2599/blog_demos](https://github.com/zq2599/blog_demos) 內容:所有原創文章分類彙總及配套原始碼,涉及Java、Docker、Kubernetes、DevOPS等; ### 系列文章彙總 - [jackson學習之一:基本資訊](https://blog.csdn.net/boling_cavalry/article/details/107135958) - [jackson學習之二:jackson-core](https://blog.csdn.net/boling_cavalry/article/details/108571629) - [jackson學習之三:常用API操作](https://blog.csdn.net/boling_cavalry/article/details/108192174) - [jackson學習之四:WRAP_ROOT_VALUE(root物件)](https://blog.csdn.net/boling_cavalry/article/details/108298858) - [jackson學習之五:JsonInclude註解](https://blog.csdn.net/boling_cavalry/article/details/108412558) - [jackson學習之六:常用類註解](https://blog.csdn.net/boling_cavalry/article/details/108333324) - [jackson學習之七:常用Field註解](https://blog.csdn.net/boling_cavalry/article/details/108589494) - [jackson學習之八:常用方法註解](https://blog.csdn.net/boling_cavalry/article/details/108433330) - [jackson學習之九:springboot整合(配置檔案)](https://blog.csdn.net/boling_cavalry/article/details/108460433) - [jackson學習之十(終篇):springboot整合(配置類)](https://blog.csdn.net/boling_cavalry/article/details/108559056) ### 關於jackson 本文是《jackson學習》系列的第一篇,先來一起了解jackson: 1. jackson的github地址:https://github.com/FasterXML/jackson 2. 按照官網所述,jackson是java技術棧內最好的JSON解析工具(best JSON parser for Java); 3. 除了JSON解析,jackson還是個資料處理工具集:基於流的解析庫和生成庫、資料繫結、資料格式化模組(Avro、XML、Protobuf、YAML等); ### 版本資訊 1. jackson共有1.x和2.x兩個版本系列,其中1.x已廢棄不再有版本釋出,2.x是活躍版本; 2. 1.x和2.x不相容,如果您的程式碼已經使用了1.x,現在想改用2.x,您就必須修改使用jackson的那部分程式碼; 3. 雖然不相容,但是1.x和2.x不衝突,您的專案可以在pom.xml中同時依賴這兩個版本,假設您原有三處程式碼呼叫了1.x的API,現在可以把一處改成2.x的,另外兩處維持不變,這個特性適合將專案逐步從1.x升級到2.x(This is by design and was chosen as the strategy to allow smoother migration from 1.x to 2.x.); 4. 2.x系列版本中,有的版本已關閉(除非bug或者安全問題才會釋出新的小版本),有的版本還處於活躍狀態,如下圖,您可以在這個地址獲取最新情況:https://github.com/FasterXML/jackson/wiki/Jackson-Releases ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202101/485422-20210125090039782-513220804.png) ### 三個核心模組 jackson有三個核心模組,如下,括號內是maven的artifactId: 1. Streaming(jackson-core):低階API庫,提供流式解析工具JsonParser,流式生成工具JsonGenerator; 2. Annotations(jackson-annotations):jackson註解; 3. Databind (jackson-databind):基於java物件的序列化、反序列化能力,需要前面兩個模組的支援才能實現; ### 低階API庫的作用 1. 當我們用jackson做JSON操作時,常用的是Databind模組的ObjectMapper類,對處於核心位置的jackson-core反倒是很少直接用到,那麼該模組有什麼作用呢? 2. 如下圖,BeanSerializer是jackson-databind的功能類,其serialize方法負責將java物件轉為JSON,方法中的處理邏輯就是呼叫JsonGenerator的API,而JsonGenerator就是jackson-core中負責序列化的主要功能類: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202101/485422-20210125090040443-536104948.png) 3. 可見Databind模組的ObjectMapper類提供給我們的API,其底層操作是基於jackson-core實現的; 至此,我們對jackson已有了基本瞭解,接下來的文章會開始一系列的實戰,通過實戰來掌握和理解這套優秀的工具; ### 你不孤單,欣宸原創一路相伴 1. [Java系列](https://xinchen.blog.csdn.net/article/details/105068742) 2. [Spring系列](https://xinchen.blog.csdn.net/article/details/105086498) 3. [Docker系列](https://xinchen.blog.csdn.net/article/details/105086732) 4. [kubernetes系列](https://xinchen.blog.csdn.net/article/details/105086794) 5. [資料庫+中介軟體系列](https://xinchen.blog.csdn.net/article/details/105086850) 6. [DevOps系列](https://xinchen.blog.csdn.net/article/details/105086920) ### 歡迎關注公眾號:程式設計師欣宸 > 微信搜尋「程式設計師欣宸」,我是欣宸,期待與您一同暢遊Java世界... [https://github.com/zq2599/blog_demos](https://github.com/zq2599/blo