2014-09-15 111 views
5

Android'de JSON kullanarak almak istediğim çok boyutlu bir dizilim var. Bunun için aşağıdaki JSON Yapısı vardır:Android'de json kullanarak çok boyutlu dizi nasıl alınır

[ 
     [ 
     { 
      "name": "Banking", 
      "data": [ 
      { 
       "vendor_name": "SBI", 
       "vendor_id": "1" 
      }, 
      { 
       "vendor_name": "ICICI", 
       "vendor_id": "2" 
      }, 
      { 
       "vendor_name": "BOB", 
       "vendor_id": "3" 
      } 
      ], 
      "count": 4 
     } 
    ] 
] 

benim Strings "name", vendor_name, vendor_id android almak istiyorum. Ama bunu nasıl yapacağımı düşünmüyorum. Lütfen bunu nasıl alacağımı bana bildirin.

+0

çalıştı ... Ben burada yazılan ondan sonra ... !!! :( – Ruchir

+0

json dizininizi 2d dizisine dönüştürmek istersiniz? –

+0

java'da gson, jackson gibi birçok json parseri vardır. –

cevap

5
 try { 
      jsonObj = new JSONObject(YourString); 
     } catch (JSONException e) { 
      Log.v("Error in Parser", " " + e); 
     } 
    try{ 

    String name=jsonObj.getString("name"); 
      Data = jsonObj.getJSONArray("data"); 
       for (int i = 0; i < Data.length(); i++) {  
         JSONObject jsonObj2 = Data.getJSONObject(j); 
         String vName = jsonObj2.getString("vendor_name"); 
         String vId=jsonObj2.getString("vendor_id");  
       } 
}catch(Exception e) 
{ 
} 
+0

Yukarıdaki kodu deneyin istediğiniz çıktı alırsınız! –

+5

sadece kopyalamak izin ve kodu yapıştırın, en azından snippet'inizde neler olduğunu bildirin. –

+0

t Veri sınıfı, Android stüdyosunun sizden almanızı istediği çoklu paketler olduğundan dolayı. Cevabını takdir etsem de, bazı açıklamaları dahil ederseniz daha yararlı olurdu. –

2

Bu şekilde deneyin, bu sorunun çözülmesine yardımcı olacağını umarız.

try{ 
    JSONArray jsonArray = new JSONArray("[[{\"name\":\"Banking\",\"data\":[{\"vendor_name\":\"SBI\",\"vendor_id\":\"1\"},{\"vendor_name\":\"ICICI\",\"vendor_id\":\"2\"},{\"vendor_name\":\"BOB\",\"vendor_id\":\"3\"}],\"count\":4}]]"); 
    HashMap<String,Object> responseMap = new HashMap<String, Object>(); 
    ArrayList<HashMap<String,String>> dataList = new ArrayList<HashMap<String, String>>(); 

    responseMap.put("name",jsonArray.getJSONArray(0).getJSONObject(0).getString("name")); 
    for(int i=0;i<jsonArray.getJSONArray(0).getJSONObject(0).getJSONArray("data").length();i++){ 
     HashMap<String,String> dataRow = new HashMap<String, String>(); 
     dataRow.put("vendor_name",jsonArray.getJSONArray(0).getJSONObject(0).getJSONArray("data").getJSONObject(i).getString("vendor_name")); 
     dataRow.put("vendor_id",jsonArray.getJSONArray(0).getJSONObject(0).getJSONArray("data").getJSONObject(i).getString("vendor_id")); 
     dataList.add(dataRow); 
    } 
    responseMap.put("data",dataList); 
    responseMap.put("count",jsonArray.getJSONArray(0).getJSONObject(0).getString("count")); 

    System.out.print("name : "+responseMap.get("name").toString()); 
    ArrayList<HashMap<String,String>> list = (ArrayList<HashMap<String,String>>)responseMap.get("data"); 
    for (HashMap<String,String> row : list){ 
     System.out.print("vendor_name : "+row.get("count")); 
     System.out.print("vendor_id : "+row.get("count")); 
    } 
    System.out.print("count : "+responseMap.get("count").toString()); 
}catch (Throwable e){ 
    e.printStackTrace(); 
} 
+2

Sadece samimi öneri, en azından çok basit bir örnek açıklamak için bir ihtiyaç olduğunu düşünmüyor musunuz acemi op öğrenebilir? –

+0

@ KickButtowski, Sevgili burada herhangi bir yabancı ya da bilinmeyen kod koyamazsınız json biliyorum ne olursa olsun ben burada ne yaptığını ve son öneriniz için teşekkürler teşekkürler –

+2

Ve ne o kim kullanmayın kullanımı hakkında ... – MadProgrammer

İlgili konular