7

我有这样的数据:

{"key": {"name":"hi", "size":10}}

“key”是一个动态值。它不是固定的。我可以访问namesize使用这个 JSON 路径:

*.name
*.size

如何使用 JSON 路径获取“键”本身的值?*给我整行数据,并$@我的解析器中给我“找不到元素”。

我正在尝试使用 JSON 输入步骤在 Pentaho 中执行此操作。

4

3 回答 3

4

$.*将为您提供父对象的所有元素,在您的示例中,您将获得类似

[
   {
      "name":"hi",
      "size":10
   }
]

根据:http: //jsonpath.curiousconcept.com/

于 2012-11-12T09:45:10.053 回答
1

Pentaho JSON Input 步骤无法做到这一点,因为正如您所说,它使用 JSONPath。你需要用另一种方式来做。例如Modified Java Script Value

var obj = JSON.parse(json);
var keys = Object.keys(obj);
于 2016-04-04T08:12:05.873 回答
0

我遇到了与解释您的问题的一种方式相同的问题:如果您真的想["key"]从示例中获取输出而无需"key"在输入中指定。然后根本不要使用jsonPath(data,...somequery) ...。只需使用Object.keys(data). 我正在使用 Javascript,并且不熟悉 Pentaho,所以我不知道我的回答是否适用于您的情况。

于 2013-09-16T11:57:54.117 回答