java - 基于键修剪 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);
}
});
}
根据规则进行清洁工作,
- 如果这是一个
ObjectNode
,从那里删除键。 - 如果是 Array 节点,从那里获取对象并相应地清理它们 #1
我认为错误在于它不假设一个数组节点也可以包含另一个数组节点,我们需要编写另一个最终返回 ObjectNode 的递归方法。
那是对的吗?
解决方案
推荐阅读
- javascript - 我试图给我的下拉背景颜色,但它没有实现
- ios - 从另一个目标访问一个目标 Plist
- r - 无法(重新)安装 rJava (macOS)
- c - 在 C 中打印链接列表时出现段错误
- java - 即使经过验证,也无法在运行时找到 Xpath
- sql - pgp_sym_decrypt 与选择查询一起使用
- c# - 获取 Azure 的访问令牌
- go - 在 Go 中使用 cron 定期运行 Colly web scraper
- python - 我想在分类下整理频道,如何移动?不和谐.py
- node.js - 如何在管道到另一个流之前在 nodejs/expressjs 中编辑 IncomingForm?