首页 > 解决方案 > 基于键修剪 ObjectNode

问题描述

我有一小段代码有问题,需要正确编写。代码如下,

  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);
            }
        });
    }

根据规则进行清洁工作,

  1. 如果这是一个ObjectNode,从那里删除键。
  2. 如果是 Array 节点,从那里获取对象并相应地清理它们 #1

我认为错误在于它不假设一个数组节点也可以包含另一个数组节点,我们需要编写另一个最终返回 ObjectNode 的递归方法。

那是对的吗?

标签: javajackson-dataformat-xmljsonnode

解决方案


推荐阅读