0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

シンプルな JSON 読み込み Java サンプル (jackson-databind 利用)

Last updated at Posted at 2021-11-15

JSON をちょっと Java で読み込みたい時のサンプルをメモしておきます。

JSON読み書きには RFC 4180 を実装する必要がありますが、一般的にはライブラリ利用により実現します。
この例では、 jackson-databind を利用した JSON読み込みサンプル記述を残しておきます。

Maven (pom.xml)

まず最初に、JSON読み込みを実現するためのライブラリである jackson-databind をビルドに組み込みます。 pom.xml ファイルの に以下の Maven Repository 記述を追加します。 (ビルドでの自動ダウンロードの実現のためには、インターネットに接続されている必要があります)

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.13.0</version>
</dependency>

POJO 作成

jackson-databind はデータの読み込みに Java の POJO クラスを利用します。この POJO クラスは一般的にはツールを用いて自動生成します。ここでは、jsonschema2pojo を利用して、JSON文字列を入力に Java ソースコードを自動生成します。

jsonschema2pojo サイトは以下のような画面のイメージです。

json2java.png

生成ソースコードの設定例

  • JSON文字列を貼り付け
  • Package に生成後 Javaソースコードのパッケージ名を入力。この例では pojo と入力
  • Class name に生成後 Javaソースコードのクラス名を入力。この例では Climate と入力
  • Source typeJSON に設定
  • Annotation styleJackson 2.x に設定
  • チェックボックスは、Include getters and setters のみチェック

Zip をクリックして、そして Java ソースファイルを ZIP ファイルとしてダウンロードします。

Java 記述

生成した POJO (Climate.java) を利用して JSON データを読み込むプログラミングをします。

  • ObjectMapper インスタンスを作成して、JSON文字列を入力に readValue を呼び出して、値が設定済みの Climate インスタンスを出力として取得します。
import java.io.IOException;
import com.fasterxml.jackson.databind.ObjectMapper;
import pojo.Climate;

public class App {
    public static void main(String[] args) throws IOException{
        final String content = "{\"publishingOffice\":\"気象庁\",\"reportDatetime\":\"2021-11-15...高いでしょう。\"}";
        final ObjectMapper mapper = new ObjectMapper();
        final Climate data = mapper.readValue(content, Climate.class);
        System.out.println("data: " + data.getPublishingOffice());
    }
}

文書情報

  • 初出: 2021-11-16

関連情報

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?