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