2015-07-21 7 views
-3

Как я могу разобрать 2 json Array в Android? Plz см. Следующий код;Android: Parse 2 jsonArray

{ 
"detail": [ 
    { 
     "price": 51, 
     "numsc": 2, 
     "name": "this app is about animals", 
     "sc1": "printed-dress.jpg", 
     "sc2": "printed-dress2.jpg" 
    } 
], 
"colors": [ 
    { 
     "color": "#5D9CEC", 
     "name": "blue" 
    }, 
    { 
     "color": "#FCCACD", 
     "name": "pink" 
    } 
] 

}

вы можете мне помочь плз ??

+0

Поиск по _google_ –

+0

здесь является один объект и один массив в объекте, в чем проблема, чтобы разобрать его? –

ответ

1
JSONObject object = new JSONObject(your-string); 

    JSONArray details=object.getJSONArray("details"); 
for(int j=0;j<details.length();j++){ 
     JSONObject detail= details.getJSONObject(i); 
    String price = detail.getString("price"); 
    .... 
    } 
    JSONArray colors = object.getJSONArray("colors"); 

    for(int i=0;i<colors.length();i++){ 
     JSONObject obj= colors.getJSONObject(i); 
     // parse your json here 
    String color = obj.getString("color") 

    } 
+0

«detail» - это JSONArray, а не JSONObject. – Kunu

+0

@Kunu да, под редакцией –

+0

Спасибо! это хорошо работает. – user5137770

0

Смотреть следующий код:

private void decodeJSON() 
    { 
     String JSONString = "you json String"; 
     try 
     { 
      JSONObject obj = new JSONObject(JSONString); 
      JSONArray arr = obj.getJSONArray("detail"); 
      JSONObject detail = arr.getJSONObject(0); 
      int price = detail.getInt("price"); // do same thing to get other values 


      arr = obj.getJSONArray("colors"); 
      JSONObject color = arr.getJSONObject(0); 
      String colorValue = color.getString("color"); 
      String name = color.getString("name"); 

      // do same thing for next object in array. 
     } catch (JSONException e) 
     { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    }