2012-08-15 167 views
-1

例如,一種JSON的如下:如何在JAVA中獲取多級JSON格式的內容?

JSONObject jaob=new JSONObject(xxx) 

和從方法 「GET(」 × 「)」 的JSONObject的我可以得到:

{ "x":"1","y":"2","z":{"a":"1","b":"2","c":"3"}} 

在JSONObject的參數將這個作爲串值「1」

 jaob.get("x") 

可是如何才能讓第二級JSON格式「Z」的「一」 ???

當我試圖通過

 JSONObject(jaob.get("z").toString()).get("a") 

獲得,但它不工作。
有沒有人有這個想法?
任何反應表示讚賞,感謝

+0

「get」方法返回值的類型是什麼?當你明白這一點時,答案應該很容易理解。 – HonkyTonk 2012-08-15 13:44:01

+0

你看過JSONObject的api文檔嗎? – 2012-08-15 13:48:50

+0

在發佈問題之前,請花時間閱讀[documentation](http://www.json.org/javadoc/org/json/JSONObject.html) – ChrisHarris2012 2012-08-15 13:49:46

回答

3
jaob.getJSONObject("Z").getString("a") 

或者試圖

JSONObject jaob = new JSONObject(xxx); 

jaob.getJSONArray("z"); 

//or 

jaob.getJSONObject("z"); 

他們都返回的JSONObject,你可以在a使用getLong或的getString。

如果你讀the javadocs這是很容易的東西。你的工作原因是get返回java.lang.Object而不是JSONObjectJSONArray

+0

根據Z中的數據,您也可以使用。 getInt(「a」) – ChrisHarris2012 2012-08-15 13:48:51

+0

是的,我在代碼示例的正下方提到。 – 2012-08-15 13:58:19