如何使用Jackson向嵌套子ObjectNode中添加父级ObjectNode节点
解决方法
你当前代码不生效的核心原因是节点路径定位错误:merge节点不在JSON的最外层根节点下,而是在features数组的第一个元素层级下,同时你还需要补充assets下node节点的插入逻辑。
如果你使用的是Java Jackson库操作JSON节点,可参考以下代码实现需求:
// 假设root为你解析完成的根ObjectNode对象 // 1. 定位到features数组的第一个元素节点 ObjectNode firstFeature = (ObjectNode) root.withArray("features").get(0); // 2. 构建外层merge节点 JsonNode originalProperties = firstFeature.get("properties"); firstFeature.remove("properties"); // 删除原有properties节点 ObjectNode mergeNode = firstFeature.putObject("merge"); mergeNode.set("properties", originalProperties); // 把原有properties放入merge下 // 3. 构建assets下的node节点 ObjectNode assets = (ObjectNode) originalProperties.get("assets"); JsonNode originalMetaData = assets.get("metaData"); assets.remove("metaData"); // 删除原有metaData节点 ObjectNode nodeNode = assets.putObject("node"); nodeNode.set("metaData", originalMetaData); // 把原有metaData放入node下
操作完成后直接输出root即可得到你需要的目标JSON结构。
内容的提问来源于stack exchange,提问作者yed2393
相关产品推荐
相关产品推荐

