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>

 

pom.png

 

建立User Class

這個類別是用來給接下來的範例示範如何用Jackson將JSON轉換成User,或是將User轉換成JSON

以下省略getter, setter

User.png

 

Serialize : 將 User 物件 轉換成 JSON

Object to JSON.png

Output結果如下:

output1.png

 

Deserialize : 將 JSON 轉換成 Java Object

Json to Object.png

這個時候如果去執行程式,你就會發生以下例外:

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)

exception.png

這是因為我們在User中寫了一個Constructor方便我們在創建物件的時候使用,

而Jackson的反deserialize需要無參數的建構子(default contructor)

所以解決的方法就是在User加上default contructor就可以了

※ Note: 要記得哦,除了加上default contructor,getter和setter也是必備元素哦,如果沒寫getter和setter也會報錯

default.png

接著再跑一次剛剛的程式,就可以看到成功的印出Output了

Ouput2.png

 

今天這篇文章就先簡單介紹Jackson的基本使用方法

 

Ref:

[1] https://www.baeldung.com/jackson-object-mapper-tutorial

[2] https://kucw.github.io/blog/2020/6/java-jackson/J

arrow
arrow

    Mark Zhang 發表在 痞客邦 留言(0) 人氣()