java - 如何获取 Jackson JsonNode 的路径

标签 java json jackson jackson-databind

我有一个看起来像这样的 json

{
    "a": {
        "b": [
            {
                "c": {
                    "d": [{ "f": "value" }]
                }
            },
            {
                "c": {
                    "d": [{ "f": "value" }]
                }
            }
        ]
    }
}

我使用以下代码循环 b 内的数据,然后在嵌套循环中再次获取 d 处的数组

for (JsonNode abNode : rootNode.at("/a/b")) {
    for (JsonNode cdNode : abNode.at("/c/d")) {
        //cdNode.get("f")
    }
}

在 for 循环中,如何获取类似 node.get("f") 的路径,以便获得 /a/b/0/c/d/0/f 然后是 /a/b/1/c/d/0/f? jackson 有东西可以得到这个或另一个图书馆吗?我现在唯一能想到的就是切换到 for i=0 循环

最佳答案

您正在尝试做的事情在技术术语中也称为 Xpath。 它用于基于 html、xml 的语言,现在也可用于 json

您可以尝试使用 jsonpath 来解决这种情况:

https://www.baeldung.com/guide-to-jayway-jsonpath https://github.com/json-path/JsonPath

关于java - 如何获取 Jackson JsonNode 的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71746882/

相关文章:

java - Jackson:解析数组的数组

javascript - JSON 解析 Bing map 响应

javascript - 在 react 组件中迭代json

java - 对象序列化到字节与从对象到 JSON 的 Jackson 序列化?

java - 如何让碰撞和动画在 2d 平台游戏中发挥作用?

python - 将逻辑字符串转换为 JSON

java - JSON Jackson 序列化反序列化列表列表

java - Hadoop 中的 Mapreduce 在使用超过 200MB 的文件时会超出 GC 开销限制

Java:用逗号分隔并忽略标签 <p> 中的逗号

java - ANDROID 时间选择器如何以小时和分钟显示两个数字