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

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 データを書き出すプログラミングをします。

  • 書き出したい情報を POJO に設定
  • ObjectMapper インスタンスを作成
  • インデントありのJSON出力を設定
  • POJOを入力に writeValueAsString を呼び出して、JSON出力を文字列として取得
import java.io.IOException;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;

import pojo.Climate;

public class App {
    public static void main(String[] args) throws IOException {
        Climate climate = new Climate();
        climate.setPublishingOffice("お天気庁");
        climate.setReportDatetime("2021-11-15T16:36:00+09:00");
        climate.setTargetArea("東京村");
        climate.setHeadlineText("はれ.");
        climate.setText("明日は晴れ.");

        final ObjectMapper mapper = new ObjectMapper();
        mapper.enable(SerializationFeature.INDENT_OUTPUT);
        final String json = mapper.writeValueAsString(climate);
        System.err.println("data: " + json);
    }
}

文書情報

  • 初出: 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?