Java
 Computer >> コンピューター >  >> プログラミング >> Java

【Java】GsonライブラリでnullフィールドをJSONにシリアライズする方法

デフォルト設定では、Gsonnull値を持つフィールドをJSONにシリアライズしません。Javaオブジェクト内のフィールドがnullである場合、そのフィールドは出力から除外されます。

しかし、GsonBuilderクラスを利用することで、null値も強制的にシリアライズさせることが可能です。具体的には、Gsonオブジェクトを生成する前に、GsonBuilderインスタンスに対してserializeNulls()メソッドを呼び出します。このメソッドを呼び出した後に作成されたGsonインスタンスは、シリアライズ結果のJSONにnullフィールドを含めるようになります。

構文

public GsonBuilder serializeNulls()

コード例

以下は、serializeNulls()を使用してnull値を持つフィールドを出力に含めるサンプルプログラムです。

import com.google.gson.*;
import com.google.gson.annotations.*;

public class NullFieldTest {
    public static void main(String args[]) {
        GsonBuilder builder = new GsonBuilder();
        builder.serializeNulls();
        Gson gson = builder.setPrettyPrinting().create();
        Employee emp = new Employee(null, 25, 40000.00);
        String jsonEmp = gson.toJson(emp);
        System.out.println(jsonEmp);
    }
}

// Employeeクラス
class Employee {
    @Since(1.0)
    public String name;
    @Since(1.0)
    public int age;
    @Since(2.0)
    public double salary;

    public Employee(String name, int age, double salary) {
        this.name = name;
        this.age = age;
        this.salary = salary;
    }
}

実行結果

上記のコードを実行すると、nameフィールドがnullであっても、JSON出力に「"name": null」が含まれていることが確認できます。

{
    "name": null,
    "age": 25,
    "salary": 40000.0
}

ポイントまとめ

  • デフォルトのGsonでは、nullのフィールドはJSONから除外される
  • nullも出力したい場合は、GsonBuilderのserializeNulls()を呼び出してからGsonインスタンスを作成する
  • setPrettyPrinting()を組み合わせると、整形された読みやすいJSONが出力できる
  1. JavaとOpenCVライブラリを使って画像を保存(書き出し)する方法

    OpenCVライブラリを利用すると、画像フィルタリング、幾何学的変換、色空間の変換、ヒストグラム処理など、さまざまな画像処理操作を行うことができます。本記事では、その中でも基本的な操作である「画像の読み込みと保存(書き出し)」の方法を解説します。画像を書き出す(保存する)方法Imgcodecsクラスのimread()メソッドを使って画像を読み込むと、その内容はMat(Matrix)オブジェクトに格納されます。読み込んだ画像をファイルとして保存するには、imwrite()メソッドを使用します。imwrite()メソッドは、以下の2つの引数を受け取ります。file:保存先のファイルパスを表す文字列

  2. 【Java入門】Gsonライブラリを使ってJSON文字列をファイルに書き込む方法

    GsonライブラリとはGsonは、JavaオブジェクトをJSON形式に変換(シリアライズ)するためのGoogle製オープンソースライブラリです。逆に、JSON文字列からJavaオブジェクトへの変換(デシリアライズ)も簡単に行えるため、JavaでJSONを扱う際の定番ライブラリとして広く利用されています。Gsonを使用する際の中心的なクラスはGsonクラスです。インスタンスはnew Gson()のように直接生成できますが、設定をカスタマイズしたい場合はGsonBuilderクラスを使ってGsonインスタンスを作成することも可能です。この記事では、Gsonクラスが提供するtoJson()メソッドを