2013-05-11 6 views
20

क्या कई अलग-अलग JSONObject एस को एक JSONArray में स्टोर करना संभव है? यह संरचना है, मैं JSONArray में स्टोर करना चाहता हूं।JSONArray को एकाधिक JSONObjects कैसे डालें/प्राप्त करें?

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

यहाँ कोड है, जहां मैं JSONObject की स्थापना कर रहा हूँ और यह एक 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(); 
} 

में डाल इस कोड को केवल अंतिम मान है, जो मैं सभी वस्तुओं को JSON ऑब्जेक्ट अवहेलना में स्थापित करने हूँ का उपयोग करना है। इसे प्राप्त करने के लिए कोई सुझाव?

+0

@ डीडीए मेरे प्रश्न को सही करने के लिए धन्यवाद। – PSK

उत्तर

27

मैं JSON के लिए बहुत अच्छा संपर्क है। Here

JSONArray में एकाधिक JSONObjects जोड़ने के लिए कोड यहां दिया गया है।

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

मैंने एक ही चीज़ की कोशिश की लेकिन केवल आखिरी जेसन ऑब्जेक्ट को कई बार जोड़ा गया ...... मुझे नहीं पता कि – chopss

+0

क्या देर हो चुकी है, लेकिन क्या आपने JSONObject को अपने लूप के बाहर घोषित किया है । @chopu – PSK

+0

उत्तर देने के लिए धन्यवाद लेकिन मुझे पहले से ही यह मिला ....... इतनी देर क्यों ???? – chopss

8

एक बार जब आप JSONObject में मान डाल देते हैं तो JSONObject को JSONArray स्टारटाइट में डाल दें।

कुछ इस तरह हो सकता है:

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

फिर, नए JSONObject बनाने में अन्य मूल्यों डाल दिया और JSONArray में जोड़ें:

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

मैं बटन क्लिक पर JSONObject में मान सेट कर रहा हूं। इसलिए जब दूसरी बार बटन JSONObjects के मान स्वचालित रूप से सेट पर क्लिक किया जाता है। @Ash – PSK

+0

@PSK ऐसा लगता है कि मुझे प्रश्न ठीक से नहीं समझा है, क्या आप जो कुछ करने की कोशिश कर रहे हैं उसके बारे में कुछ और बता सकते हैं? – Ash

+0

मुझे JSON के लिए बहुत अच्छा लिंक मिला है। मैंने अपना जवाब जोड़ा है। @ एश – PSK

संबंधित मुद्दे