2015-11-12 4 views
0

В моем приложении я пытаюсь разобрать этот тип структуры Json. Кто-нибудь из вас, ребята, столкнулся с этой проблемой? Любая помощь будет принята с благодарностью.Как разобрать двоичный массив JSON

Главная проблема заключается в двойной [[

[ 
    [ 
    { 
     "nid": "29", 
     "vid": "30", 
     "type": "oa_discussion_post", 
     "language": "und", 
     "title": "We want to hear from you.", 
     "uid": "1", 
     "status": "1", 
     "created": "1441316801", 
     "changed": "1442461699", 
     "comment": "2", 
     "promote": "0", 
     "sticky": "0", 
     "tnid": "0", 
     "translate": "0", 
     "uuid": "b9cb0351-5dbc-4ef1-8f8c-5570b66a2339" 
    } 
    ] 
] 

Вот мой подход:

JSONArray json = new JSONArray(jsonData); 
for(int i=0;i<json.length();i++) { 
    HashMap<String, String> map = new HashMap<String, String>(); 
    JSONObject e = json.getJSONObject(i); 

    String userType=e.getString("vid"); 
    String topLine=e.getString("type"); 
} 

Где моя ошибка?

+0

Почему downvoted ??? –

+0

Эта полная ссылка на решение может помочь вам. http://stackoverflow.com/a/22014966 –

ответ

0

у вас есть вложенное массива внутри массива верхнего уровня

for(int i=0;i<json.length();i++) { 
    JSONArray nestedJsonArray = json.optJSONArray(i); 
    if (nestedJsonArray != null) { 
     for(int j=0;j<nestedJsonArray.length();j++) { 
       // use j and nestedJsonArray to retrieve the JSONObect 
       HashMap<String, String> map = new HashMap<String, String>(); 
       JSONObject e = nestedJsonArray.optJSONObject(i); 
       String userType=e.optString("vid"); 
       String topLine=e.optString("type"); 
     } 
    } 
} 
+0

это worksssss. Я согласен с этим –

+0

приветствуются – Blackbelt

0

У вас есть еще JSONArray, но вы используете JSONObject. Просто сделайте

JSONArray firstArray = new JSONArray(jsonData); 
JSONArray secondArray = firstArray.getJSONArray(0); 
JSONObject jsonObject = secondArray.getJSONObject(0); 

//Do want you want with your jsonObject 
String userType = jsonObject .getString("vid"); 
String topLine = jsonObject .getString("type"); 
+0

okay.Trying this –

0

у вас есть объект в массиве в массиве.

Вы должны выбрать первый массив в нем, а не напрямую выбирать JSONObject. Выбрав второй JSONArray, затем выберите свой JSONObject, используя getJSONObject(0);

Смежные вопросы