Jackson是一個對JSON(JavaScript Object Notation)的轉換工具
它可以幫忙我們將JSON和Java Object進行轉換
轉換操作分成兩種
- Serialize : 將 Java Object 轉換成 JSON
- Deserialize : 將 JSON 轉換成 Java Object
要怎樣可以使用Jackson
在Maven Project中可以在pom.xml中加入dependency:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.1</version>
</dependency>
建立User Class
這個類別是用來給接下來的範例示範如何用Jackson將JSON轉換成User,或是將User轉換成JSON
以下省略getter, setter
Serialize : 將 User 物件 轉換成 JSON
Output結果如下:
Deserialize : 將 JSON 轉換成 Java Object
這個時候如果去執行程式,你就會發生以下例外:
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `jackson.User`
(no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
這是因為我們在User中寫了一個Constructor方便我們在創建物件的時候使用,
而Jackson的反deserialize需要無參數的建構子(default contructor)
所以解決的方法就是在User加上default contructor就可以了
※ Note: 要記得哦,除了加上default contructor,getter和setter也是必備元素哦,如果沒寫getter和setter也會報錯
接著再跑一次剛剛的程式,就可以看到成功的印出Output了
今天這篇文章就先簡單介紹Jackson的基本使用方法
Ref:
[1] https://www.baeldung.com/jackson-object-mapper-tutorial
[2] https://kucw.github.io/blog/2020/6/java-jackson/J
留言列表