我正在开发一个通过JSON与第三方进行对话的新系统。使用杰克逊遍历json树
其中一个调用返回巨大的JSON结构来表示产品和规则。
我已经用Jackson很容易地将这个JSON转换成树。现在的问题是我希望能够通过'查询'来查找节点,而无需手动遍历整个树。
因此,树中的某个地方有一个名为business_id的字段。我想返回所有有这个字段的节点。
这可能吗?
我正在开发一个通过JSON与第三方进行对话的新系统。使用杰克逊遍历json树
其中一个调用返回巨大的JSON结构来表示产品和规则。
我已经用Jackson很容易地将这个JSON转换成树。现在的问题是我希望能够通过'查询'来查找节点,而无需手动遍历整个树。
因此,树中的某个地方有一个名为business_id的字段。我想返回所有有这个字段的节点。
这可能吗?
你可以尝试Json的路径,它可以让你使用它的XPath拿起一个JSON节点:
您可以使用杰克逊的JsonNode类文件的位置: http://fasterxml.github.io/jackson-databind/javadoc/2.5/com/fasterxml/jackson/databind/JsonNode.html
解析您的数据转换成一个JsonNode(例如通过ObjectMapper.readValue),那么你可以以编程的方式遍历该JSON结构为一棵树。
查看方法:as {datatype},find [Value | Values],[Array | Object | {datatype}],路径等。