String json =     
[ 
 {"a":{"aa":"string","ab":"string"} },
 {"b":{"ba":"string","bb":"string"} }
]

Я пытаюсь проанализировать эти данные с помощью JsonObject. Когда я использую этот код:

JSONStringer Js= new JSONStringer(json);
 Log.d("json", ""+Js);

Он дает мне это: (первая строка json, но мне нужны все данные)

{"a":{"aa":"string","ab":"string"} } 

Как я могу прочитать это на Android?

-1
Barış Yener 17 Окт 2015 в 02:48

2 ответа

Лучший ответ

Это JsonArray не простой JsonObject

Попробуй это:

    JSONArray a = new JSONArray(json);
    for (int i = 0; i < a.length(); i++) {
        JSONObject row = a.getJSONObject(i);
        Log.d("json", ""+row);
    }
3
pgiitu 16 Окт 2015 в 23:55

На самом деле, этот JSON выглядит довольно странно, поскольку он объединяет объекты массива в каждый дополнительный объект («a» и «b»), что затрудняет анализ. Должно получиться так:

String json = [{"name": "a", "aa": "string", "ab": "string"}, {"name": "b", "ba": "строка", "bb" : "строка"}]

А затем вы бы проанализировали это так:

JSONArray root = new JSONArray(jsonString); //this is the above string
for(int i = 0; i < root.length(); i++){
    JSONObject current = root.getJSONObject(i);

    //Do the parsing here
}
0
Kelevandos 16 Окт 2015 в 23:58