JSONata:按部分名称提取字段

标签 jsonata

我有一个 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"
}

关于JSONata:按部分名称提取字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67159407/

相关文章:

javascript - 在 Node-RED 切换节点中使用上下文值

javascript - 如何从所有 JSON 值中删除引号并且不删除 Node JS 中 JSON 键中的引号

json - 使用 Jsonata 匹配名称包含空格或特殊字符的 json 字段

JSONata:测试JSON值数据类型的方法或函数

jsonata - 如何从子节点访问父节点

javascript - JSONata 获取父元素

jsonata - 如果数组包含特定字符串则返回 True - JSONata