JavaのFlexjsonでJSONをラップする方法:rootName()メソッドの使い方を解説
Flexjsonは、Java Beans、Map、配列、コレクションなどのJavaオブジェクトをJSON形式でシリアライズ・デシリアライズするための軽量なJavaライブラリです。JSONへの変換を行う中心となるのがJSONSerializerクラスで、デフォルトではオブジェクトの直下のフィールドのみを対象とする浅い(shallow)シリアライズを実行します。
本記事では、生成されるJSONを任意の名前でラップ(包む)できるrootName()メソッドの使い方を、サンプルコードとともに解説します。
rootName()メソッドとは?
JSONSerializerクラスが提供するrootName()メソッドを使うと、シリアライズ結果のJSONをJavaScriptオブジェクト形式でラップできます。具体的には、指定した名前を持つ単一のフィールドの中に出力結果が格納された構造になります。
APIレスポンスにルート要素を持たせたい場合や、複数種類のデータを区別しやすいJSONを生成したい場合に便利です。
構文
public JSONSerializer rootName(String rootName)
引数にはラップ時に使用するルート名を文字列で指定します。戻り値はJSONSerializer自身なので、メソッドチェーンで他の設定と組み合わせることも可能です。
使用例
以下は、rootName()メソッドを使って「My_Employee」というルート名でJSONをラップする例です。あわせてprettyPrint(true)を指定することで、整形された読みやすいJSONが出力されます。
import flexjson.JSONSerializer;
public class JSONRootNameTest {
public static void main(String[] args) {
// ルート名を指定し、整形出力を有効化
JSONSerializer serializer = new JSONSerializer().rootName("My_Employee").prettyPrint(true);
Employee emp = new Employee("Adithya", "Jai", 28, "Hyderabad");
String jsonStr = serializer.serialize(emp);
System.out.println(jsonStr);
}
}
// 従業員クラス
class Employee {
private String firstName;
private String lastName;
private int age;
private String address;
public Employee() {}
public Employee(String firstName, String lastName, int age, String address) {
super();
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.address = address;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public int getAge() {
return age;
}
public String getAddress() {
return address;
}
}
実行結果
{
"My_Employee": {
"address": "Hyderabad",
"age": 28,
"class": "Employee",
"firstName": "Adithya",
"lastName": "Jai"
}
}
出力のポイント
- JSON全体が"My_Employee"というキーでラップされ、その中にEmployeeオブジェクトの各フィールドが格納されています。
- Flexjsonはデフォルトで"class"フィールドを出力に含めます。不要な場合はexclude("class")を組み合わせて除外できます。
- prettyPrint(true)によりインデント付きの整形済みJSONが得られ、デバッグやログ出力の際に可読性が向上します。
このように、rootName()メソッドを活用すれば、柔軟かつ簡潔にJSONの構造を制御できます。REST APIのレスポンス設計などで、ルート要素付きのJSONが必要な場面でぜひ活用してみてください。
-
【Java入門】Gsonライブラリを使ってJSON文字列をファイルに書き込む方法
GsonライブラリとはGsonは、JavaオブジェクトをJSON形式に変換(シリアライズ)するためのGoogle製オープンソースライブラリです。逆に、JSON文字列からJavaオブジェクトへの変換(デシリアライズ)も簡単に行えるため、JavaでJSONを扱う際の定番ライブラリとして広く利用されています。Gsonを使用する際の中心的なクラスはGsonクラスです。インスタンスはnew Gson()のように直接生成できますが、設定をカスタマイズしたい場合はGsonBuilderクラスを使ってGsonインスタンスを作成することも可能です。この記事では、Gsonクラスが提供するtoJson()メソッドを
-
JavaでJSONをパース(解析)する方法|org.json・Gson・JsonPathの使い方を解説
このチュートリアルでは、JavaでJSONを解析(パース)する方法を、複数のライブラリの使い方とあわせて解説します。 JSONとは「JavaScript Object Notation」の略称で、JavaScriptのサブセットをベースとした軽量なデータ形式です。 データ交換フォーマットとして広く普及しており、Webプログラミングにおいて不可欠な技術となっています。本記事では、org.jsonライブラリを使ったJSONのパース方法を中心に紹介します。 まず基本をおさらいしましょう。JSONオブジェクトは「キーと値のペア」から構成される順序のない集合です。一方、JSON配列は値が順序付けて格納さ