一尘不染

如何使用Java删除JSONArray元素

hibernate

我的JsonArray是

[{
"Id": null,
"Name": "One New task",
"StartDate": "2010-02-03T05:30:00",
"EndDate": "2010-02-04T05:30:00",
"Duration": 1,
"DurationUnit": "d",
"PercentDone": 0,
"ManuallyScheduled": false,
"Priority": 1,
"parentId": 8,
"index": 0,
"depth": 3,
"checked": null },{
"Id": null,
"Name": "New task",
"StartDate": "2010-02-04T05:30:00",
"EndDate": "2010-02-04T05:30:00",
"Duration": 0,
"DurationUnit": "d",
"PercentDone": 0,
"ManuallyScheduled": false,
"Priority": 1,
"parentId": 8,
"index": 1,
"depth": 3,
"checked": null }]

现在,我要从此JsonArray中删除ID,ManualScheduled,已选中,

我尝试在JAVA中使用jsonArray.remove(1)jsonArray.discard("Id")。但是什么也没发生。我删除阵列项目错了吗?

我正在使用JAVA作为技术。


阅读 2155

收藏
2020-06-20

共1个答案

一尘不染

您所拥有的是一系列对象。因此,您将不得不遍历数组并从 每个 对象中删除必要的数据,例如

for (int i = 0, len = jsonArr.length(); i < len; i++) {
    JSONObject obj = jsonArr.getJSONObject(i);
    // Do your removals
    obj.remove("id");
    // etc.
}

我假设您正在使用org.json.JSONObjectand org.json.JSONArray,但是无论使用什么JSON处理库,主体都保持不变。

如果您想将类似的内容转换[{"id":215},{"id":216}][215,216],可以这样:

JSONArray intArr = new JSONArray();
for (int i = 0, len = objArr.length(); i < len; i++) {
    intArr.put(objArr.getJSONObject(i).getInt("id"));
}
2020-06-20