Java Filter JsonArray with Integer Array for parameter

时间:2016-08-23 07:55:18

标签: java arrays json list

我的目标是使用JSONArray的{​​{1}}过滤List参数:

Integers

我当前创建新JSONObject record1 = new JSONObject(); record1.put("id", "44"); record1.put("name", "somename"); 并为参数获取id的函数:

JSONArray

我想传递一个 private JSONArray modifyJsonArray(JSONArray array, final Integer param) throws JSONException { List<JSONObject> jsons = new ArrayList<JSONObject>(); mainJsons = new ArrayList<JSONObject>(); for (int i = 0; i < array.length(); i++) { Integer id = Integer.parseInt(array.getJSONObject(i).getString("id")); mainJsons.add(array.getJSONObject(i)); if (id == param) { jsons.add(array.getJSONObject(i)); } } return new JSONArray(jsons); } 而不是List<Integer>

2 个答案:

答案 0 :(得分:0)

使用两个for循环解决了问题:

  private JSONArray modifyJsonArray(JSONArray array, final List<Integer> param) throws JSONException {
    List<JSONObject> jsons = new ArrayList<JSONObject>();
    mainJsons = new ArrayList<JSONObject>();
    for (int i = 0; i < array.length(); i++) {
        Integer id = Integer.parseInt(array.getJSONObject(i).getString("id"));
        mainJsons.add(array.getJSONObject(i));
        for (int j = 0; j < param.size(); j++){
            if (statusId == param.get(j)) {
                jsons.add(array.getJSONObject(i));
            }
        }
    }
    return new JSONArray(jsons);
}

答案 1 :(得分:-1)

简单地说,传递一个arrray参数并放置项目:

 private JSONArray modifyJsonArray(JSONArray a,  int[] arr) throws JSONException {
        for(int i:arr){
            a.put(i);
        }
        return a;
}