2013-05-11 25 views
20

Có thể lưu trữ nhiều JSONObject s khác nhau vào một đơn JSONArray không? Đây là cấu trúc, tôi muốn lưu trữ trong một JSONArray.Làm thế nào để đặt/nhận nhiều JSONObject vào JSONArray?

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

Dưới đây là đoạn code mà tôi đang thiết JSONObject và đưa nó vào một 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(); 
} 

Sử dụng mã này chỉ có giá trị cuối cùng, mà tôi đang thiết trong đối tượng Override JSON cho tất cả các đối tượng. Bất kỳ đề xuất để đạt được điều này?

+0

@dda cảm ơn vì đã sửa câu hỏi của tôi. – PSK

Trả lời

27

Tôi thấy liên kết rất tốt cho JSON. Here

Đây là mã để thêm nhiều JSONObject vào JSONArray.

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

Tôi đã cố gắng điều tương tự nhưng chỉ đối tượng json cuối cùng được nối nhiều lần ...... tôi không biết điều gì đã xảy ra lỗi – chopss

+0

của nó đến muộn, nhưng bạn đã khai báo JSONObject bên ngoài vòng lặp for của bạn . @chopu – PSK

+0

cảm ơn bạn đã trả lời nhưng tôi đã có nó ....... tại sao quá muộn ???? – chopss

8

Khi bạn đã đặt các giá trị vào JSONObject, sau đó đặt JSONObject vào trong ánh sao JSONArray sau.

Something như thế này có lẽ:

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

Sau đó tạo mới JSONObject, đặt các giá trị khác vào nó và thêm nó vào JSONArray:

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

Tôi đang đặt giá trị trong JSONObject khi nhấp vào Nút. do đó, khi nút thời gian thứ hai được nhấp vào các giá trị của JSONObjects được đặt tự động. @Ash – PSK

+0

@PSK Có vẻ như tôi chưa hiểu câu hỏi đúng cách, bạn có thể giải thích thêm một chút về những gì bạn đang cố gắng làm không? – Ash

+0

Tôi đã tìm thấy liên kết rất tốt cho JSON. Tôi đã thêm câu trả lời của tôi @ Ash – PSK

Các vấn đề liên quan