使用Jackson从JSON文件中删除空元素 [英] Remove an empty element from JSON file with Jackson
本文介绍了使用Jackson从JSON文件中删除空元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试从JSON文件中删除元素:
I'm trying to remove an element from a JSON file:
[
{
"Lorem Ipsum ":4,
},
{
"Lorem Ipsum ":5,
},
{
"keyToRemove": value,
}
]
使用以下代码,我可以删除密钥和值:
With the following code, I can remove the key and the value:
for (JsonNode personNode : rootNode) {
if (personNode instanceof ObjectNode) {
if (personNode.has("keyToRemove")) {
ObjectNode object = (ObjectNode) personNode;
object.remove("keyToRemove");
}
}
}
但我还是空的括号:
[
{
"Lorem Ipsum ":4,
},
{
"Lorem Ipsum ":5,
},
{
}
]
如何删除它?
推荐答案
你没有删除它整个对象,但你要删除它的一个元素。
you are not removing the whole object, but instead you are removing an element of it.
object.remove("keyToRemove");
将从您的< keyToRemove
code> object 。在这种情况下,对象
基本上是 json对象
而不是 json数组
。
will remove an element keyToRemove
from your object
. in this case object
is basically json object
not the json array
.
要删除整个对象,您不应该使用 for循环
。
您可以尝试使用 Iterator
代替:
To remove the whole object you shouldn't be using a for loop
.
you can try using an Iterator
instead:
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();
}
}
};
这篇关于使用Jackson从JSON文件中删除空元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文