1. ホーム
  2. java

[解決済み] Gsonがvalue=nullのマップエントリを無視する件

2022-05-13 16:29:26

質問

Gson gson = new Gson();

Map<String,Object> map = new HashMap<String, Object>();
map.put("a", 1);
map.put("b", null);

System.out.println(gson.toJson(map)); //prints {"a":1}

すべてのエントリーを含めるようにするにはどうしたらいいですか?

どのように解決するのですか?

参照 Gson ユーザーガイド - Null オブジェクトのサポート :

Gsonに実装されているデフォルトの動作は、NULLオブジェクトのフィールドは無視されるというものです。これはよりコンパクトな出力フォーマットを可能にします。しかし、JSONフォーマットがそのJavaフォームに変換される際に、クライアントはこれらのフィールドのデフォルト値を定義しなければなりません。

以下は、NULLを出力するためにGsonインスタンスを構成する方法です。

Gson gson = new GsonBuilder().serializeNulls().create();