読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

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