0

有没有办法在 JMESPath 中实现以下行为?

我有一个这样的字典:

{
    "foo": "aa", 
    "bars": [
        "bb", 
        "cc"
    ]
}

我正在寻找如下结果。标量值“aa”应该与“bars”数组的每一项结合起来,以获得一个平面字典数组。(从“bars”到“bar”的变化会很好但不是必须的,我主要寻找元素的组合。)

[
    {
        "foo": "aa",
        "bar": "bb"
    },
    {
        "foo": "aa",
        "bar": "cc"
    }
]

如果有人知道实现这一目标的方法,那就太好了。

4

1 回答 1

0

目前这是不可能的,并且需要能够访问表达式中的父对象。该功能已在github 问题 #22上请求。


现在您可以创建一个包含的对象列表foo

map(&{bar: @}, bars)

返回

[
  {
    "bar": "bb"
  },
  {
    "bar": "cc"
  }
]

当然,您可以添加foo这样的静态值:

map(&{foo: "aa", bar: @}, bars)

但是,假设父对象功能将被实现为 variable ,正如此$github 评论中所建议的那样,您将使用表达式获得所需的结果

map(&{foo: $, bar: @}, bars)

请注意,这还不起作用

于 2018-06-14T09:25:53.907 回答