json to java
2007/11/24
java
json
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
: