Jsonata新手求助:提取JSON对象id作为键的转换实现
JSONata 转换实现:提取id作为新对象键并保留value字段
输入JSON
{"key-1":[{"id":"a","value":2.3},{"id":"b","value":2.3}],"key-2":[{"id":"c","value":2.4},{"id":"d","value":2.5}]}
期望输出JSON
{"a":{"value":2.3},"b":{"value":2.3},"c":{"value":2.4},"d":{"value":2.5}}
实现的JSONata表达式
$merge($map($$, function($v) { $map($v, function($item) { { $item.id: { value: $item.value } } }) }))
逻辑拆解
$$指代整个输入对象,外层$map先遍历所有顶层键对应的数组值- 内层
$map遍历每个数组里的子对象,为每个子对象生成一个以id为键、仅包含value字段的小对象 - 最后用
$merge把所有零散的小对象合并成一个完整的目标对象
内容的提问来源于stack exchange,提问作者rage2spirit
相关产品推荐
相关产品推荐

