タイトルだけだとどういうことかわからないので、サンプルを書きます。
目標はGsonを使って以下のようなJsonを生成することです。
{"hoge":"hoge","fuga":null}
Gsonを使ってJsonを生成するのは慣れていた(つもり)だったので以下のようにサラサラと書いてみます。
Map<String, String> map = new HashMap<>();
map.put("hoge", "hoge");
map.put("fuga", null);
Gson gson = new Gson();
String json = gson.toJson(map);
jsonの中身を見ると…
{"hoge":"hoge"}
俺のfugaが消えています…
調べてみると、GsonにはBuilderが用意されてて、そこでserializeNulls()を呼んで create()すると良いみたいです。
Map<String, String> map = new HashMap<>();
map.put("hoge", "hoge");
map.put("fuga", null);
GsonBuilder gsonBuilder = new GsonBuilder().serializeNulls();
Gson gson = gsonBuilder.create();
String json = gson.toJson(map);
結果
{"hoge":"hoge","fuga":null}
fugaを取り戻しました。
serializeNulls()の中身を見ると、GsonBuilderのserializeNullsプロパティがtrueにするような処理が走っていました。
serializeNullsプロパティはデフォルトではfalseになっていました。
そもそも GsonBuilder なるものがあるのを知らなかったですね…勉強になりました。
<参考サイト>
【Quita 】Gsonはデフォルトではnullなフィールドをシリアライズしない