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

【Java】FlexjsonライブラリでJSONを整形出力(Pretty Print)する方法

Flexjsonは、JavaのBean、Map、配列、コレクションなどのオブジェクトをJSON形式シリアライズ(直列化)・デシリアライズ(非直列化)するための軽量なJavaライブラリです。

JSONへの変換を担う中心的なクラスがJSONSerializerです。デフォルトではシャロー(浅い)シリアライズが行われ、オブジェクトの第一階層のフィールドのみが出力されます。ネストしたオブジェクトまで出力したい場合は、include()メソッドで対象のフィールドを明示的に指定します。

JSONを見やすい形式で整形出力する(Pretty Print)には、JSONSerializerクラスのprettyPrint(boolean prettyPrint)メソッドを使用します。引数にtrueを渡すことで、インデントや改行が付いた整形済みのJSON文字列が生成されます。

構文

public JSONSerializer prettyPrint(boolean prettyPrint)

Maven依存関係

flexjsonを利用するには、プロジェクトに以下の依存関係を追加します。

<dependency>
    <groupId>net.sf.flexjson</groupId>
    <artifactId>flexjson</artifactId>
    <version>3.3</version>
</dependency>

サンプルプログラム

以下のプログラムでは、flexjsonライブラリを使ってJSONを整形出力しています。

import flexjson.*;

public class PrettyPrintJSONTest {
    public static void main(String[] args) {
        // prettyPrint(true) で整形出力を有効化
        JSONSerializer serializer = new JSONSerializer().prettyPrint(true);
        Employee emp = new Employee("Vamsi", "105", "Python Developer", "Python", "Pune");
        String jsonStr = serializer.serialize(emp);
        System.out.println(jsonStr);
    }
}

// Employeeクラス
class Employee {
    private String name, id, designation, technology, location;

    public Employee(String name, String id, String designation, String technology, String location) {
        super();
        this.name = name;
        this.id = id;
        this.designation = designation;
        this.technology = technology;
        this.location = location;
    }

    public String getName() {
        return name;
    }

    public String getId() {
        return id;
    }

    public String getDesignation() {
        return designation;
    }

    public String getTechnology() {
        return technology;
    }

    public String getLocation() {
        return location;
    }
}

実行結果

{
  "class": "Employee",
  "designation": "Python Developer",
  "id": "105",
  "location": "Pune",
  "name": "Vamsi",
  "technology": "Python"
}

このように、prettyPrint(true)を指定するだけで、各フィールドがインデントと改行付きで読みやすい形に出力されます。デバッグ時やログ出力時にJSONの内容を確認したい場合に非常に便利です。

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

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

  2. JavaでJSONファイルを読み込む方法|json-simpleライブラリの使い方を徹底解説

    JSON(JavaScript Object Notation)は、人間が読み書きしやすいデータ交換のために設計された、軽量なテキストベースのオープン標準フォーマットです。JSONで使われる記法は、C、C++、Java、Python、Perlなど、多くのプログラミング言語に精通した開発者にとって馴染み深いものとなっています。サンプルJSONドキュメント以下は、書籍情報を格納した典型的なJSONドキュメントの例です。{ book: [ { id: 01, language: Java, edition