この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
JavaのJSONライブラリにFastjsonというものがあります。 今回はこのFastjsonでレスポンスにnullが含まれる場合の挙動を設定する方法をご紹介します。
Fastjsonとは
まず、Fastjsonについて簡単にご説明します。
Fastjsonは、JavaのオブジェクトをJSON形式に変換したり、逆にJSONをJavaオブジェクトに変換できる、JSONライブラリです。
Fastjsonはオープンソースのライブラリで、公開しているのは中国のB2Bマーケット運営で有名なアリババ。
以下の記事によると、他のJavaのJSONライブラリと比較しても高速に動作するようです。
使い方
では簡単にJavaオブジェクトをJSON形式に変換する方法をご説明します。
上記のGitHubのリンクからダウンロードするか、Mavenの場合はpom.xmlに以下のように記述してインストールします。
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.21</version>
</dependency>
そして、Javaのオブジェクトを渡してあげると、
JSON.toJSONString(hogeForm);
JSON形式で出力してくれます。簡単です。
{
name: "hoge"
}
nullの挙動設定
では本題のnullの挙動設定です。
デフォルトでは name が null の場合、nameの要素自体が出力されません。
{ }
しかし、nullでも要素は表示しないといけない場合もあります。
そんな時、以下の引数を渡してあげます。
JSON.toJSONString(hogeForm, SerializerFeature.WriteMapNullValue);
すると、
{
name: null
}
name要素がnullで表示されました。
最後に
上記のGitHubのWikiやIssueを見ると、他にも色々オプションがありそうです。
また機会があれば調べてみたいと思います。