プログラマメモ2 - programmer no memo2

json to java 2007/11/24

jsonのデータを気軽にjavaで扱える方法を模索中です。

【ハウツー】LL時代のデータ形式 - JavaプログラマのためのYAML/JSON (5) JavaでYAML/JSONを利用する - JSON-lib | エンタープライズ | マイコミジャーナル

という記事を読んで、なるほどと思う。

Maven - Json-lib::Welcome

ちょっと依存するlibが多そうなので、もっと簡単なのないかな。

It is based on the work by Douglas Crockford in http://www.json.org/java.

というふうにあったので、JSON in Javaにいってみる。

むきだしのjavaコードがあったので、ひとつづつダウンロードしてみた。

依存するものがないようなので、ちょっと試してみた。



jsonデータ

{
arr:[
{
name:"o_o!",
val:"Ohh"
},
{
name:"o_o2!",
val:"Eeeehh"
}
]
}


で適当に読み込むコード


import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.Scanner;

public class JSONtoJava {

public static void main(String[] args) throws UnsupportedEncodingException,
JSONException {
InputStream stream = JSONtoJava.class
.getResourceAsStream("../data2.js");
BufferedReader reader = new BufferedReader(new InputStreamReader(
stream, "utf-8"));

Scanner scanner = new Scanner(reader);
StringBuilder builder = new StringBuilder();
while (scanner.hasNextLine()) {
builder.append(scanner.nextLine());
}

JSONTokener tokener = new JSONTokener(new String(builder));
JSONObject object = new JSONObject(tokener);

JSONObject object2 = (JSONObject) object.getJSONArray("arr").get(0);
System.out.println(object2.get("val"));

}

}


ファイルから一気に読み込むコードが思いつかなかったので、scannerでぐるぐると。
ファイルの読み込みなんて、ユーティリティクラスつくっていつも動かしていたから、こういった基本コードの書き方忘れるOrz...

えーと、JSONTokenerを作成して、JSONObjectに渡してあげればOK

: