javascript - 如何使用 jsonPath 或替代方法从 JSON 结构中的 childNode 查找 parentNode?

标签 javascript jquery json

我需要从 JSON 结构中的子节点中找出一个父节点。例如,我需要知道 "view_id": "f" 的父项是什么。

我正在评估 jsonPath但我找不到父运算符。

我现在想:

  • jsonPath 是否有一个父运算符或有一个可以类似地使用的替代运算符?
  • 如果没有任何替代库或解决方案?

您可以在这里测试 JSON 结构:http://jsonpath.curiousconcept.com/

[
    {
        "view_id": "a",
        "views": [
            {
                "view_id": "b",
                "views": [
                    {
                        "view_id": "c"
                    },
                    {
                        "view_id": "d"
                    }
                ]
            },
            {
                "view_id": "e",
                "views": [
                    {
                        "view_id": "f"
                    },
                    {
                        "view_id": "g"
                    }
                ]
            },
            {
                "view_id": "h"
            }
        ]
    },
    {
        "view_id": "i",
        "views": [
            {
                "view_id": "l",
                "views": [
                    {
                        "view_id": "m",
                        "views": [
                            {
                                "view_id": "n"
                            },
                            {
                                "view_id": "o"
                            }
                        ]
                    }
                ]
            },
            {
                "view_id": "p"
            }
        ]
    },
    {
        "view_id": "q"
    }
]

最佳答案

根据我的理解,jsonPath 不允许我找到节点的 parent:

解决方案 A:

  • 为 JSON 中的每个节点添加属性“parent_id”,使用 jsonPath 查询 JSON。

解决方案 B:

  • 不为此任务使用 jsonPath,而是将 JSON 的内存中的 rap-presentation 保存为“平面”数组,在填充数组时,我可以向每个节点添加一个“parent_id”以查找子节点我总是需要知道它的 parent (如评论中所建议的)。任何搜索都是使用 JS 在“平面”数组上完成的。

关于javascript - 如何使用 jsonPath 或替代方法从 JSON 结构中的 childNode 查找 parentNode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28234347/

相关文章:

javascript - Handlebars 过滤对象

javascript - 内联编辑数据表 jquery

javascript - 纯 JavaScript 替代 jQuery 的 .not()

jquery - 使用jquery uidraggable,是否可以在垂直和水平方向上具有不同的滚动灵敏度?

JavaScript 正则表达式在 IE/Firefox 中失败

ios - NSJSONSerialization - 无法将数据转换为字符串

javascript - 将数据从 html 表单导入 jquery 函数时出现问题

javascript - bootstrap 3 上调整后的菜单从左向右滑动

javascript - 在js中将多维json转换为数组

javascript - 通过 MediaWiki API 从文章返回文本?