2012-02-14 27 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)'? – 2012-02-14 16:36:49

回答

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 2012-02-14 16:37:12

+0

同意Dorin。在我的例子中,我特別針對他的案例。 – digitaljoel 2012-02-14 16:38:58