当前位置: 代码迷 >> java >> JsonNode findValue不搜索子节点
  详细解决方案

JsonNode findValue不搜索子节点

热度:35   发布时间:2023-07-17 20:54:22.0

我有一个像这样结构的资源:

"activity": {
            "activity_type": "Like",
            "activity_id": "123456",
            "object_id": "",
            "product_id":"",
            "reference_activity": {
                    "activity_type": "Rating",
                    "activity_id": "789456",
                    "object_id": "rating/5",
                    "product_id": "product.v1.13445123",
                    "timestamp": 1433447044000
            },
            "timestamp": 1435790640115
}

问题是资源可以包含同一类的对象(即引用另一个“活动”)。 因此,它们具有相似的值名称。 我正在尝试使用Jackson的JsonNode.findValue()方法解析此JSON结构,但findValue()方法也会执行嵌套搜索。 因此,如果我执行findValue(“object_id”),它将永远不会返回空字符串。 相反,它将始终返回“rating / 5”。

  1. 有没有办法将findValue()方法限制为直接子节点?
  2. 或者,有没有办法从父结构中删除reference_activity对象(但仍然保留JsonNode对象),以便我可以单独解析它们?

如果你不需要递归查找,只需使用pathget方法?

  相关解决方案