その他
    ホーム 技術発信 DoRuby FastjsonのNULLの挙動設定
    FastjsonのNULLの挙動設定
     

    FastjsonのNULLの挙動設定

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    JavaのJSONライブラリにFastjsonというものがあります。 今回はこのFastjsonでレスポンスにnullが含まれる場合の挙動を設定する方法をご紹介します。

    Fastjsonとは

    まず、Fastjsonについて簡単にご説明します。
    Fastjsonは、JavaのオブジェクトをJSON形式に変換したり、逆にJSONをJavaオブジェクトに変換できる、JSONライブラリです。

    Fastjson – GitHub

    Fastjsonはオープンソースのライブラリで、公開しているのは中国のB2Bマーケット運営で有名なアリババ。

    以下の記事によると、他のJavaのJSONライブラリと比較しても高速に動作するようです。

    Gson vs Genson vs Fastjson

    使い方

    では簡単に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を見ると、他にも色々オプションがありそうです。
    また機会があれば調べてみたいと思います。