我正在尝试从JSON文件中删除一个元素:
[
{
"Lorem Ipsum ":4,
},
{
"Lorem Ipsum ":5,
},
{
"keyToRemove": value,
}
]
Run Code Online (Sandbox Code Playgroud)
使用以下代码,我可以删除键和值:
for (JsonNode personNode : rootNode) {
if (personNode instanceof ObjectNode) {
if (personNode.has("keyToRemove")) {
ObjectNode object = (ObjectNode) personNode;
object.remove("keyToRemove");
}
}
}
Run Code Online (Sandbox Code Playgroud)
但我还有一个空括号:
[
{
"Lorem Ipsum ":4,
},
{
"Lorem Ipsum ":5,
},
{
}
]
Run Code Online (Sandbox Code Playgroud)
我该如何删除它?
你不是删除整个对象,而是删除它的一个元素.
object.remove("keyToRemove");
Run Code Online (Sandbox Code Playgroud)
将删除keyToRemove你的元素object.在这种情况下object基本上json object不是json array.
要删除整个对象,您不应该使用for loop.你可以尝试使用一个Iterator代替:
Iterator<JsonNode> itr = rootNode.iterator();
while(itr.hasNext()){
JsonNode personNode = itr.next();
if(personNode instanceof ObjectNode){
if (personNode.has("keyToRemove")) {
// ObjectNode object = (ObjectNode) personNode;
// object.remove("keyToRemove");
itr.remove();
}
}
};
Run Code Online (Sandbox Code Playgroud)