2015-10-16 2 views
-1
String json =  
[ 
{"a":{"aa":"string","ab":"string"} }, 
{"b":{"ba":"string","bb":"string"} } 
] 

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

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

это дает мне это: (первую строку JSON, но я хочу все данные)

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

Как я могу читать это с Android?

ответ

3

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

попробовать это:

JSONArray a = new JSONArray(json); 
    for (int i = 0; i < a.length(); i++) { 
     JSONObject row = a.getJSONObject(i); 
     Log.d("json", ""+row); 
    } 
+0

Броски Exeption. Значение ... json ... - это тип JSON-объекта, не подлежащего конвертированию. Я думаю, что речь идет о серийном JSON. Я ищу его сейчас. –

+0

Что вы разместили в определенном JsonArray. Я не уверен, что такое серийный JSON. – pgiitu

0

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

Строка JSon = [{ "имя": "а", "аа": "строка", "б": "строка"}, { "имя": "б », "ба": "строка", "бб": "строка"}]

И тогда вы бы разобрать его, как это:

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 
} 
Смежные вопросы