要将 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中文网其他相关文章!