首页  >  文章  >  Java  >  如何使用 Jackson 将 JSON 字符串转换为 Java 对象?

如何使用 Jackson 将 JSON 字符串转换为 Java 对象?

Barbara Streisand
Barbara Streisand原创
2024-11-05 10:48:02665浏览

How to Convert a JSON String to a Java Object with Jackson?

使用 Jackson 将 JSON 字符串转换为 Java 对象

要将 JSON 字符串转换为 Java 对象,Jackson 是一个因其灵活性而受到广泛认可的开源 Java 库。在这种情况下,让我们探索如何使用 Jackson 来实现您的目标:

提供的 JSON 字符串包含一个类似映射的结构,其中包含“libraryname”的键值对和包含进一步内容的“mymusic”的嵌套列表键值对。

使用 Jackson 将 JSON 转换为 Map/List:

<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>

使用 Jackson 构建 JSON 树:

<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 Pojos(首选方法)

或者,您可以定义 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn