JSONICの利用

Javaプログラムにおける JSONIC の利用については
http://y-sugasawa.blogspot.com/2010/06/jsonic.html
の記述が最も具体的だった.配列を含む場合の処理,setter/getter の書き方も参考になる.

JsonicTest.java

import java.io.FileReader;
import java.util.List;
import net.arnx.jsonic.JSON;

public class JsonicTest {
    public static void main(String[] args){

	//List へ渡す
	List list = (List)JSON.decode("[1, \"a\", {}, false]");
	System.out.println(list);


	//JSONデータを文字列で与えた上で,Hogeクラスへ decode
	Hoge hoge = JSON.decode("{\"number\": 10, \"array\": [1, 2, 3]}", Hoge.class);
	System.out.println(hoge);

	//ファイルから JSON データの読み込み
	try {
	    Hoge hoge2 = JSON.decode(new FileReader("hoge.txt"), Hoge.class);
	    System.out.println(hoge2);
	} catch(Exception e){
	    System.err.println("Exception : " + e);
	}

	//文字列に JSON データが格納されている場合
	// JSON オブジェクトを生成する場合,decode() でなく parse() を用いる
	String text = "{\"number\": 10, \"array\": [1, 2, 3]}";
	JSON json = new JSON();
	Hoge hoge3 = json.parse(text, Hoge.class);
	System.out.println(hoge3);
    }


}

Hoge.java

import java.util.List;

public class Hoge {
    private String number;
    private List array;
    
    public void setNumber(String number){
	this.number = number;
    }

    public void setArray(List array){
	this.array = array;
    }
	
    public String toString(){
	String s;
	s = "number = " + number + "\n";
	for(int i = 0; i < array.size(); i++){
	    s = s + "[" + i + "]" + array.get(i) + "\n";
	}
	return s;
    }
}