[英]How to remove json key value pair from json object array using java
我想从使用 jsonObject 存储的 JSON 中删除 "status": "new"
JSONParser parser = new JSONParser();
Object obj = parser.parse(responseStr);
jsonObject = (JSONObject) obj;
JSON 结构——
{"actionName": "test"
"Data": [{
"isActive": true,
"Id": "1358",
"status": "new"
}],
}
新的 JSON 应该是这样的 -
{"actionName": "test"
"Data": [{
"isActive": true,
"Id": "1358"
}],
}
我试过 jsonObj.remove("status") ,但没有运气。
jsonObj.getJSONArray("Data").get(0).remove("status);
#Updated 代码分解:
JSONObject obj= (JSONObject) jsonObj.getJSONArray("Data").get(0);
obj.remove("status");
JSONArray newArr=new JSONArray();
newArr.put(obj);
jsonObj.put("Data", newArr);
它应该可以完成您的工作,但尚未测试。 首先,您的Data
是 JSONArray,通过jsonObj.getJSONArray("Data")
检索,然后使用get(0)
[假设,您的数组将只包含一个条目,就像您的示例] 最后,通过remove
删除该键方法。
您需要迭代Data
属性,它是一个JSON Array
并为每个项目status
键删除。
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import java.io.File;
import java.io.FileReader;
public class JsonSimpleApp {
public static void main(String[] args) throws Exception {
File jsonFile = new File("./resource/test.json").getAbsoluteFile();
JSONParser parser = new JSONParser();
JSONObject root = (JSONObject) parser.parse(new FileReader(jsonFile));
JSONArray dataArray = (JSONArray) root.get("Data");
dataArray.forEach(item -> {
JSONObject object = (JSONObject) item;
object.remove("status");
});
System.out.println(root);
}
}
上面的代码打印:
{"Data":[{"Id":"1358","isActive":true}],"actionName":"test"}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.