要將JSON 字串轉換為Java 對象,Jackson 是因其靈活性而受到廣泛認可的開源Java 函式庫。在這種情況下,讓我們探索如何使用Jackson 來實現您的目標:
提供的JSON 字串包含一個類似映射的結構,其中包含「libraryname」的鍵值對和包含進一步內容的“mymusic”的嵌套列表鍵值對。
<code class="java">ObjectMapper mapper = new ObjectMapper(); Map<String, Object> map = mapper.readValue(jsonString, Map.class);</code>
這種方法將JSON 視為一個簡單的Map,您可以在其中使用鍵存取值,例如as:
<code class="java">System.out.println(map.get("libraryname")); List<Map<String, Object>> songsList = (List<Map<String, Object>>) map.get("mymusic"); System.out.println(songsList.get(0).get("Artist Name"));</code>
<code class="java">JsonNode rootNode = mapper.readTree(jsonString);</code>
JSON 樹方法可讓您更動態地存取JSON 結構:
<code class="java">System.out.println(rootNode.get("libraryname").asText()); JsonNode myMusicArray = rootNode.get("mymusic"); System.out.println(myMusicArray.get(0).get("Artist Name").asText());</code>
或者,您可以定義Java Plain Old Java 物件(POJO) 來表示您的JSON 結構:
<code class="java">public class Library { @JsonProperty("libraryname") private String name; @JsonProperty("mymusic") private List<Song> songs; } public class Song { @JsonProperty("Artist Name") private String artistName; @JsonProperty("Song Name") private String songName; } ObjectMapper mapper = new ObjectMapper(); Library library = mapper.readValue(jsonString, Library.class);</code>
此方法允許您存取a 中的資料更面向對象的方式:
<code class="java">System.out.println(library.getName()); List<Song> songs = library.getSongs(); System.out.println(songs.get(0).getArtistName());</code>
以上是如何使用 Jackson 將 JSON 字串轉換為 Java 物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!