如何获取List中的每个元素<jsonobject> json = new ArrayList <jsonobject>()

时间:2016-12-27 12:10:52

标签: java json arraylist

我需要获取 ArrayList<JSONObject>() 中的值,如 ArrayList<List<String>>()

如果是 ArrayList<List<String>> ,我使用了以下代码

for(List<String> dreport : report)  {
    for(String ddreport: dreport)   {
        // CODE GOES HERE
    }
}

在新场景中,我需要使用该功能。但是该值包含在ArrayList()中,而不是字符串列表

示例代码:

List<JSONObject> json = new ArrayList<JSONObject>();
JSONObject json_data1 = new JSONObject();
json_data1.put("count", "value");
json_data1.put("count", "value");
json_data1.put("count", "value");
json.add(json_data1);

2 个答案:

答案 0 :(得分:2)

ArrayList<JSONObject> jsonObjects = new ArrayList<JSONObject>();
//ADD objects in the jsonObjects

ArrayList<List<String>> jsonObjectsResultData = new ArrayList<>();
//Loop for the all JSONObject
for (JSONObject jsonObject : jsonObjects){
    Iterator<String> keys= jsonObject.keys();
    List<String> jsonObjectsValues = new ArrayList<String>();
    //Loop for the JSONObject keys and values
    while (keys.hasNext())
    {
        try{
            String keyValue = (String)keys.next();
            String valueString = jsonObject.getString(keyValue);
            jsonObjectsValues.add(valueString);
        } catch (Exception e){
            e.printStackTrace();
        }
    }
    jsonObjectsResultData.add(jsonObjectsValues);
}
//Your result array list
Log.i("RESULT DATA >>", jsonObjectsResultData.toString());

答案 1 :(得分:1)

我对上述答案进行了一些修改,这样可以减少占用的空间。我们不需要为密钥设置分隔迭代器。

ArrayList<JSONObject> jsonObjects = new ArrayList<JSONObject>();
//ADD objects in the jsonObjects

ArrayList<List<String>> jsonObjectsResultData = new ArrayList<>();
//Loop for the all JSONObject
for (JSONObject jsonObject : jsonObjects){
    String jsonStr = jsonObject.toString();
    String[] strArr = jsonObject.split(",");

    List<String> jsonObjectsValues = new ArrayList<String>();
    for(int i=0;i<strArr.length;i++){
        jsonObjectsValues.add(strArr[i].split(":")[1]);
    }
    jsonObjectsResultData.add(jsonObjectsValues);
}
//Your result array list
Log.i("RESULT DATA >>", jsonObjectsResultData.toString());