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 を単純なマップとして扱い、キーを使用して値にアクセスできます。次のように:
<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 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 サイトの他の関連記事を参照してください。