2012-02-14 2 views
1

나는 다음과 같은 데이터가 있습니다배열에 이미 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"(설명) 배열 0에있는, 범위를 벗어나는 예외를 일으키는, 어떻게 제대로 할 수 있습니까?

+0

왜'array.get (0)'을 쓰지 않을까요? –

답변

2

[]는 배열을 나타내지 만 {}은 객체를 나타내므로 개체 배열을 갖습니다.

JSON의 형식은 단일 객체를 포함하는 배열입니다. 이 단일 객체는 각각 "test", "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

입니다. Dorin 동의합니다. 나는 그것을 그의 사례에 구체적으로 보관했다. – digitaljoel