2012-02-14 3 views
1

I以下のデータがあります。配列内に既にjsonデータを解析していますか?

[{"class":"test","description":"o hai","example":"a","banana":"b"}] 

このJSONデータを配列に既にあるので、私はシンプルなJSONでこれを解析するためにトラブルを抱えている:

File file = new File("/Users/FLX/test.json"); 
String s = FileUtils.readFileToString(file); 

Object obj = parser.parse(s); 
JSONArray array = (JSONArray) obj; 
log.warn("WAAAAT"+array.get(1)); 

。これは動作しませんが"1"(description)は配列0にあり、これは境界外の例外を発生させます。これをどうすれば正しく行うことができますか?

+0

なぜ 'array.get(0)'をしないのですか? –

答えて

2

[]は配列を表し、{}はオブジェクトを表します。したがって、オブジェクトの配列を持ちます。

あなたのJSONのフォーマット方法には、単一のオブジェクトを含む配列があります。その単一のオブジェクトは、それぞれ "test"、 "o hai"、 "a"、 "b"の値を持つ "class"、 "description"、 "example"、 "banana"という名前のプロパティを持っています。

JSONArrayは0に基づいているため、array.get(1)は範囲外です。説明を得るために、あなたは何かをするでしょうarray.getJSONObject(0).get("description")

+0

+1またはarray.getJSONObject(0)を呼び出すよりも優れている、array.getJSONObject(index);インデックスは> = 0で、<配列の長さは – ComputerSaysNo

+0

となります。私はそれを私の例では彼の事件に特化していました。 – digitaljoel

関連する問題