我的目标是使用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>
。
答案 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;
}