如何使用 JSON 路径引用根键?
Posted
技术标签:
【中文标题】如何使用 JSON 路径引用根键?【英文标题】:How do you reference the root key using JSON Path? 【发布时间】:2012-10-02 15:11:01 【问题描述】:我有这样的数据:
"key": "name":"hi", "size":10
“key”是一个动态值。它不是固定的。我可以使用这个 JSON 路径访问 name
和 size
:
*.name
*.size
如何使用 JSON 路径获取“键”本身的值? *
给了我整行数据,$
和 @
在我的解析器中给我“找不到元素”。
我正在尝试在 Pentaho 中使用 JSON 输入步骤来执行此操作。
【问题讨论】:
【参考方案1】:$.*
会给你父对象的所有元素,在你的例子中你会得到类似的东西
[
"name":"hi",
"size":10
]
根据:http://jsonpath.curiousconcept.com/
【讨论】:
【参考方案2】:Pentaho JSON 输入步骤无法做到这一点,因为正如您所说,这使用 JSONPath。你需要用另一种方式来做。例如Modified Java Script Value
:
var obj = JSON.parse(json);
var keys = Object.keys(obj);
【讨论】:
【参考方案3】:我遇到了与解释您的问题的一种方式相同的问题:如果您真的想从示例中获取输出 ["key"]
而不必在输入中指定 "key"
。然后根本不要使用jsonPath(data,
...somequery...)
。只需使用Object.keys(data)
。我正在使用 javascript,并且不熟悉 Pentaho,所以我不知道我的回答是否适用于您的情况。
【讨论】:
以上是关于如何使用 JSON 路径引用根键?的主要内容,如果未能解决你的问题,请参考以下文章
VS 2017 通过文件路径引用本地项目(如在 VS 2015 中使用 global.json)
如何使用 System.Text.Json 处理可为空的引用类型?