Java 基于关键点的修剪对象节点

Java 基于关键点的修剪对象节点,java,jackson-dataformat-xml,jsonnode,Java,Jackson Dataformat Xml,Jsonnode,我有一小段代码有缺陷,需要正确编写。代码如下所示: public static void doOperation(ObjectNode object, Set<String> keys) { object.forEach(x -> { if (x.isArray()) { x.forEach(y -> { ObjectNode on = (ObjectNod

我有一小段代码有缺陷,需要正确编写。代码如下所示:

  public static void doOperation(ObjectNode object, Set<String> keys) {
        object.forEach(x -> {
            if (x.isArray()) {
                x.forEach(y -> {
                    ObjectNode on = (ObjectNode) y;
                    on.remove(keys);
                    doOperation(on, keys);
                });
            } else if (x.isObject()) {
                ObjectNode on = (ObjectNode) x;
                on.remove(keys);
            }
        });
    }
publicstaticvoiddooperation(ObjectNode对象,设置键){
object.forEach(x->{
if(x.isArray()){
x、 forEach(y->{
ObjectNode on=(ObjectNode)y;
打开。移除(钥匙);
操作(打开,按键);
});
}else if(x.isObject()){
ObjectNode on=(ObjectNode)x;
打开。移除(钥匙);
}
});
}
清洁工作是根据规则进行的

  • 如果这是一个
    ObjectNode
    ,请从中删除键
  • 如果是数组节点,则从那里获取对象并相应地清理它们#1
  • 我认为错误在于它没有假设一个数组节点也可以包含另一个数组节点,我们需要编写另一个递归方法,最终返回ObjectNode

    对吗