如何使用Jackson 將JSON 轉換為Java 物件
在本指南中,我們的目標是將JSON 字串轉換為Java 物件,從而允許方便存取其屬性。此範例展示了一個包含多個音樂曲目的庫的 JSON 字串,示範如何使用 Jackson 的映射方法和自訂 Java 類別來實現此轉換。
使用Jackson 的基於地圖的反序列化:
<code class="java">ObjectMapper mapper = new ObjectMapper(); Map<String, Object> map = mapper.readValue(json, Map.class);</code>
此方法建立一個普通的Java Map,其中每個JSON 鍵都對應到一個對象值。但是,它缺乏自訂 Java 類別的結構和類型安全性。
使用Jackson 的JSON 樹:
<code class="java">JsonNode rootNode = mapper.readTree(json);</code>
此方法傳回一個JSON 樹,一個分層結構JSON 字串的表示形式,比普通Map 提供更好的靈活性。它允許動態探索和遍歷 JSON 資料。
建立自訂Java 類別:
為了更結構化和類型安全的表示,我們可以定義自訂Java類別:
<code class="java">public class Library { @JsonProperty("libraryname") public String name; @JsonProperty("mymusic") public List<Song> songs; } public class Song { @JsonProperty("Artist Name") public String artistName; @JsonProperty("Song Name") public String songName; }</code>
使用這些類,我們可以反序列化JSON 字串,如下所示:
<code class="java">Library lib = mapper.readValue(jsonString, Library.class);</code>
現在,我們可以方便地訪問庫及其曲目:
<code class="java">String libraryName = lib.name; Song firstTrack = lib.songs.get(0); String artistName = firstTrack.artistName;</code>
與使用普通地圖或JSON 樹相比,這種方法提供了一種更直觀且物件導向的方式來操作JSON 資料。
以上是如何使用 Jackson 將 JSON 轉換為 Java 物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!