如何将多个JSONObjects放入/获取到JSONArray?

是否可以将多个不同的JSONObject存储到单个JSONArray ? 这是结构,我想存储在JSONArray

 [{"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对象中设置覆盖所有对象。 有任何建议来实现这一目标

Solutions Collecting From Web of "如何将多个JSONObjects放入/获取到JSONArray?"

我find了非常好的JSON链接。 这里

这是将多个JSONObject添加到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(); 

将值放入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);