在数组 JSONata 中包含计数器

Include Counter in array JSONata

我刚开始使用 JSONata,我发现很容易解析 JSON 非常有趣。但是我有这个问题,我不确定是否可以直接用JSONata完成。

我想包括一个从 1 到 "the number of objects in an array" 的计数器,如下所示:

JSONata 表达式的原始输出:

[ { "a":错误, "b": "", "c": "", "d":真 }, { "a":错误, "b": "", "c": "", "d":真 }, { "a":错误, "b": "", "c": "", "d":真 } ]

想要的输出:

[ { "count": "1", "a":错误, "b": "", "c": "", "d":真 }, { "count": "2", "a":错误, "b": "", "c": "", "d":真 }, { "count": "3", "a":错误, "b": "", "c": "", "d":真 } ]

可能吗?提前谢谢你。

您可以使用 $map() 函数迭代列表并将表达式应用于每个项目。函数的第二个参数将是数组中的索引。因此,对于您的示例,以下内容会将 count 属性 合并到您的原始对象数组中:

$ ~> $map(function($v, $i) {
  $merge([{'count': $i+1}, $v])
})

在 JSONata Exerciser 中看到这个工作:http://try.jsonata.org/rkDpyXMVM