我是一名初级 Java 程序员,所以如果我的问题有点愚蠢,我很抱歉。
我有一个 JSON 对象,如下所示:
{
"element1" : {
"generated_name_1": {
"a" : {"isReady":false}
},
"generated_name_2":{},
"generated_name_3":{},
"generated_name_4":{}
},
"element2" : {
"generated_name_5" : {
"a" : {"isReady":false},
"g" : {"isReady":false}
}
},
"element3" : {
"a" : { "isReady":false},
"n":{}
}
}
我想遍历并删除每个具有与之关联的空值的元素,例如“ generated_name_2”和“ n”。我不知道这些元素的名称是什么,也不知道它在 JSON 树中嵌套了多远。
我知道我必须编写一个递归程序,这就是我想出的:
public static void cleanJsonNodes(ObjectNode myJsonNode){
for (JsonNode currentNode : myJsonNode){
if (currentNode.size() == 0){
myJsonNode.remove(currentNode);
} else {
cleanJsonNodes((ObjectNode)currentNode);
}
}
}
当然,这是行不通的,但我不太确定从这里该去哪里,而且我在互联网上搜索也无济于事。
请有人帮助我!
我还没有测试过,但你可能想要这样的东西:
public static void stripEmpty(JsonNode node) {
Iterator<JsonNode> it = node.iterator();
while (it.hasNext()) {
JsonNode child = it.next();
if (child.isObject() && child.isEmpty(null))
it.remove();
else
stripEmpty(child);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)