ホームページ  >  記事  >  Java  >  Jackson を使用して JSON を Java オブジェクトに変換するには?

Jackson を使用して JSON を Java オブジェクトに変換するには?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-05 15:12:02681ブラウズ

How to Convert JSON to Java Objects Using Jackson?

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

このガイドでは、JSON 文字列を Java オブジェクトに変換して、そのプロパティに簡単にアクセスできるようにします。この例では、複数の音楽トラックを含むライブラリを含む JSON 文字列を示し、Jackson のマッピング メソッドとカスタム Java クラスの両方を使用してこの変換を実現する方法を示します。

Jackson のマップベースの逆シリアル化の使用:

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

このアプローチでは、各 JSON キーがオブジェクト値にマップされるプレーンな Java マップが作成されます。ただし、カスタム Java クラスの構造とタイプ セーフが欠けています。

Jackson の JSON ツリーの使用:

<code class="java">JsonNode rootNode = mapper.readTree(json);</code>

このメソッドは、階層構造の JSON ツリーを返します。プレーンなマップよりも優れた柔軟性を提供する JSON 文字列の表現。これにより、JSON データの動的な探索と走査が可能になります。

カスタム Java クラスの作成:

より構造化されたタイプセーフな表現のために、カスタム Java を定義できます。クラス:

<code class="java">public class Library {
  @JsonProperty("libraryname")
  public String name;

  @JsonProperty("mymusic")
  public List<Song> songs;
}
public class Song {
  @JsonProperty("Artist Name") public String artistName;
  @JsonProperty("Song Name") public String songName;
}</code>

これらのクラスを使用すると、次のように JSON 文字列を逆シリアル化できます:

<code class="java">Library lib = mapper.readValue(jsonString, Library.class);</code>

これで、ライブラリとそのトラックに簡単にアクセスできるようになります:

<code class="java">String libraryName = lib.name;
Song firstTrack = lib.songs.get(0);
String artistName = firstTrack.artistName;</code>

このアプローチは、プレーンなマップや JSON ツリーを使用する場合と比較して、より直感的でオブジェクト指向の JSON データ操作方法を提供します。

以上がJackson を使用して JSON を Java オブジェクトに変換するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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