JSONException при попытке создать JSONArray - PullRequest
2 голосов
/ 03 января 2011

Пожалуйста, сообщите, почему я получаю исключение при попытке создать экземпляр 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

Ответы [ 2 ]

5 голосов
/ 03 января 2011

menuitem не является потомком tmp. Попробуйте это:

js = tmp.getJSONObject("menu").getJSONObject("popup").getJSONArray("menuitem");
0 голосов
/ 03 января 2011

Для меня это сработало так:

Файл 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...