JMESPath:在字典中将数组值与标量值组合以获得叉积列表

JMESPath: In a dict combine an array value with a scalar value to get a list of the cross products

有没有什么方法可以在 JMESPath 中实现以下行为?

我有一个这样的字典:

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

我正在寻找如下结果。标量值 "aa" 应与 "bars" 数组的每一项组合以获得平面字典数组。 (从"bars"改成"bar"就好了,但不是必须的,我主要是找元素的组合。)

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

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

目前是不可能的,并且需要能够访问表达式中的父对象。已在 github issue #22.

请求该功能

现在您可以创建对象列表 not 包含 foo:

map(&{bar: @}, bars)

returns

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

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

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

但是,假设 父对象 功能将作为变量 $ 实现,正如 this github 评论中所建议的那样,您将使用表达式

获得所需的结果
map(&{foo: $, bar: @}, bars)

请注意,这还没有工作