JSONata:按部分名称提取字段

JSONata: Extract fields by partial name

我有一个 json,其属性名称以我需要忽略的一些前缀开头,并以实际字段名称结尾:

{
    "context": {
        "values": {
            "group1:0:foo": "08119037",
            "group1:0:checkbox": [
                "2",
                "3"
            ]
        }
    }
}

我可以提取确切的字段 group1:0:foo,但不能提取“以 :foo 结尾的字段”:

{
    "foo": context.values.`group1:0:foo`
}

在 JSONata 练习器中:https://try.jsonata.org/uqDfozN8r

一个可能的解决方案:https://try.jsonata.org/9vruWw6HR

{
  "foo": $lookup(context.values, context.values.$keys()[$contains($, 'foo')])
}

结果:

{
  "foo": "08119037"
}

shrickus 的解决方案:

$spread(context.values)[$match($keys($)[0], /.*:foo/)]  {
    $keys($)[0].$split(":")[2]: $.*
}

-> 已接受答案,因为它避免了查找。