请告诉我为什么我在尝试创建JSONArray实例时遇到异常?
String task = "{'menu': { 'id': 'file', 'value': 'File', 'popup': { 'menuitem': [ {'value': 'New', 'onclick': 'CreateNewDoc()'}, {'value': 'Open', 'onclick': 'OpenDoc()'}, {'value': 'Close', 'onclick': 'CloseDoc()'}] }}}";
try {
JSONObject tmp = new JSONObject(task);
js = tmp.getJSONArray("menuitem"); // exception fires here
} catch(JSONException e) {
e.printStackTrace();
}
获得例外
01-03 16:12:17.926: WARN/System.err(5999): org.json.JSONException: No value for menuitem
答案 0 :(得分:5)
'menuitem'不是tmp
的孩子。试试这个:
js = tmp.getJSONObject("menu").getJSONObject("popup").getJSONArray("menuitem");
答案 1 :(得分:0)
对我而言,它的工作原理如下:
JSON文件:
{
"response":
{
"results":
[
{
"value1":"1",
"value2":"2"
},
{
"value1":"1",
"value2":"2"
}
],
"status":
{
"code":"200",
"message":"Success"
}
}
}
然后:
JSONArray array = responseObject.getJSONArray("results");
for (int i = 0; i < array.length(); i++) {
// CREATE YOUR OBJECTS
}