2013-05-11 21 views
20

Birden çok farklı JSONObject s ürününü tek bir JSONArray içine yerleştirmek mümkün müdür? Bu yapı, JSONArray'da depolamak istiyorum.JSONArray'e nasıl birden fazla JSONObject yerleştirilir/alınır?

[{"value1":1,"value2":900,"value3":1368349},{"value1":2,"value2":1900,"value3":136856},{"value1":3,"value2":600,"value3":136845}] 

Burada JSONObject ayarlama ve bu kodu tüm nesnelere JSON nesnesi geçersiz kılma içinde kuruyorum sadece son değeri, kullanma JSONArray

if(somecondition) { 
    // putting values to json object 
    jsonObj.put("value1", 1); 
    jsonObj.put("value2", 900); 
    jsonObj.put("value3", 1368349); 
} 
for(int i=0;i<=jsonArray.length();i++){ 
    jsonArray.put(jsonObj); 
    appObj.setJsonAlarmArray(jsonArray); 
    // appObj is object of Application Class 
    editor= sharedPrefs.edit(); 
    editor.putString("key", jsonArray.toString()); 
    System.out.println(jsonArray.toString()); 
    editor.commit(); 
} 

içine koyarak am kod. Bunu başarmak için herhangi bir öneriniz var mı? Eğer JSONObject nesnesi haline değerlerini koymak sonra

+0

@dda teşekkürler. – PSK

cevap

27

JSON için çok iyi bir bağlantı buldu. Here

İşte JSONArray için birden JSONObjects eklemek için kod. Sorumu düzeltmek için

JSONArray obj = new JSONArray(); 
    try { 
     for(int i = 0; i < 3; i++) { 
      // 1st object 
      JSONObject list1 = new JSONObject(); 
      list1.put("val1",i+1); 
      list1.put("val2",i+2); 
      list1.put("val3",i+3); 
      obj.put(list1); 
     } 
    } catch (JSONException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 

    Toast.makeText(MainActivity.this, ""+obj, Toast.LENGTH_LONG).show();   
+0

yanıtladı Ben aynı şeyi denedim ama sadece son json nesne birden çok kez eklenir ...... Ben yanlış gitti ne olduğunu bilmiyorum – chopss

+0

geç, ama JSONObject dışında senin döngü için bildirmek var . @chopu – PSK

+0

Yanıtladığınız için teşekkürler ama çoktan anladım ....... neden bu kadar geç ???? – chopss

8

sonra staright sonra JSONArray içine JSONObject nesnesi koydu. Belki de bu kadar

şey:

jsonObj.put("value1", 1); 
jsonObj.put("value2", 900); 
jsonObj.put("value3", 1368349); 
jsonArray.put(jsonObj); 

Sonra yeni JSONObject nesnesi yaratmak içine diğer değerleri koyup JSONArray ekleyin:

jsonObj.put("value1", 2); 
jsonObj.put("value2", 1900); 
jsonObj.put("value3", 136856); 
jsonArray.put(jsonObj); 
+0

JSONObject on Button tuşundaki değerleri ayarlıyorum. Böylece ikinci zaman düğmesi tıklandığında JSONObjects değerleri otomatik olarak ayarlanır. @Ash – PSK

+0

@PSK Soruyu doğru anlamadım gibi görünüyor, yapmaya çalıştığınız şeyin biraz daha fazlasını açıklayabilir misiniz? – Ash

+0

JSON için çok iyi bir bağlantı buldum. Cevabımı ekledim. @ – PSK