JsonNode findValue 不搜索 Child 个节点
JsonNode findValue Without Searching Child Nodes
我有一个结构如下的资源:
"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
}
问题是资源可以包含相同 class 的 object(即引用另一个 "activity")。因此,它们具有相似的值名称。我正在尝试使用 Jackson 的 JsonNode.findValue() 方法解析此 JSON 结构,但 findValue() 方法也执行嵌套搜索。因此,如果我执行 findValue("object_id"),它永远不会 return 空字符串。相反,它将始终 return "rating/5"。
- 有没有办法限制 findValue() 方法立即执行
children?
- 或者,有没有办法从中删除 reference_activity object
parent 结构(但仍然保留 JsonNode object)以便我可以单独解析它们?
如果不需要递归查找,直接使用path
或get
方法即可?
我有一个结构如下的资源:
"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
}
问题是资源可以包含相同 class 的 object(即引用另一个 "activity")。因此,它们具有相似的值名称。我正在尝试使用 Jackson 的 JsonNode.findValue() 方法解析此 JSON 结构,但 findValue() 方法也执行嵌套搜索。因此,如果我执行 findValue("object_id"),它永远不会 return 空字符串。相反,它将始终 return "rating/5"。
- 有没有办法限制 findValue() 方法立即执行 children?
- 或者,有没有办法从中删除 reference_activity object parent 结构(但仍然保留 JsonNode object)以便我可以单独解析它们?
如果不需要递归查找,直接使用path
或get
方法即可?