如何把/获取多一个JSONObjects到JSONArray?(How to put/get mul

2019-09-02 14:25发布

是否可以存储多个不同JSONObject s转换为单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对象覆盖正在设置的所有对象。 任何建议,以实现这一目标?

Answer 1:

I found very good link for JSON. [Here][1]


  [1]: http://code.google.com/p/json-simple/wiki/EncodingExamples#Example_1-1_-_Encode_a_JSON_object

Here's code to add multiple JSONObjects to 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); \\ insertion into jsonarray must be done after the loop
        } catch (JSONException e1) {
            // TODO Auto-generated catch block
          e1.printStackTrace();
        }

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


Answer 2:

一旦你已经把值入的JSONObject然后把的JSONObject到JSONArray staright后。

事情是这样的,也许:

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);


文章来源: How to put/get multiple JSONObjects to JSONArray?