如何使用 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 路径访问 namesize

*.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 路径引用根键?的主要内容,如果未能解决你的问题,请参考以下文章

Vue项目打包后的资源引用如何使用相对路径

VS 2017 通过文件路径引用本地项目(如在 VS 2015 中使用 global.json)

如何使用相对路径在 XSLT 中引用 CSS

如何使用 System.Text.Json 处理可为空的引用类型?

您如何“真正”使用 Newtonsoft.Json 序列化循环引用对象?

如何引用 System.Runtime.Serialization.Json