使用Jackson从JSON文件中删除空元素 [英] Remove an empty element from JSON file with Jackson

查看:281
本文介绍了使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆