JSONICでオブジェクトをJSON形式に変換する
JSONICを使うと、任意のJavaBeanをJSONにさくっと変換できます。
// テスト用クラス static final class Kitten { private String name; private int age; public Kitten() {} public Kitten( String name, int age ) { this.name = name; this.age = age; } public final String getName () { return name; } public final void setName ( String name ) { this.name = name; } public final int getAge () { return age; } public final void setAge ( int age ) { this.age = age; } @Override public String toString() { return name + ":" + age; } } ... // テスト用オブジェクト Kitten mii = new Kitten("mii", 1); // jsonにエンコード String json = JSON.encode( mii, true ); System.out.println( json ); // jsonからオブジェクトを生成 mii = JSON.decode( json, Kitten.class ); System.out.println( mii.toString() );
実行結果です。
{ "age": 1, "name": "mii" } mii:1
ネストしているオブジェクトの変換もサポートされています。
// テスト用クラス static final class Kitten { private String name; private int age; private Kitten friend; // 追加 public Kitten() {} public Kitten( String name, int age ) { this.name = name; this.age = age; } public final String getName () { return name; } public final void setName ( String name ) { this.name = name; } public final int getAge () { return age; } public final void setAge ( int age ) { this.age = age; } public final Kitten getFriend () { return friend; } public final void setFriend ( Kitten friend ) { this.friend = friend; } @Override public String toString() { return name + ":" + age; } } ... Kitten mii = new Kitten("mii", 1); Kitten tora = new Kitten("tora", 2); mii.setFriend( tora ); // jsonにエンコード String json = JSON.encode( mii, true ); System.out.println( json ); // jsonからオブジェクトを生成 mii = JSON.decode( json, Kitten.class ); System.out.println( mii.toString() ); System.out.println( mii.getFriend().toString() );
実行結果です。
{ "age": 1, "friend": { "age": 2, "friend": null, "name": "tora" }, "name": "mii" } mii:1 tora:2