ホームページ  >  記事  >  Java  >  Jackson を使用して JSON 文字列を Java オブジェクトに変換する方法

Jackson を使用して JSON 文字列を Java オブジェクトに変換する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-11-05 10:48:02664ブラウズ

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 をマップ/リストに変換する:

<code class="java">ObjectMapper mapper = new ObjectMapper();
Map<String, Object> map = mapper.readValue(jsonString, Map.class);</code>

このアプローチでは、JSON を単純なマップとして扱い、キーを使用して値にアクセスできます。次のように:

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

JSON ツリーに Jackson を使用する:

<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 Pojo (推奨アプローチ)

代わりに、Java Plain Old Java Object (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>

このメソッドを使用すると、よりオブジェクト指向的な方法:

<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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。