使用Jolt Transform转换JSON数组时的字段关联问题求助
Jolt Transform 关联外层字段问题修复
问题原因
你当前的Jolt Spec中,使用[&]指定数组索引时,仅会取内层from数组的索引(0、1、2),导致第二个外层对象的from元素会和第一个的索引重复,进而无法正确关联对应的id和to字段,甚至出现覆盖情况。
修正后的Jolt Spec
[ { "operation": "shift", "spec": { "*": { "from": { "*": { "@": "[]", "@(2,id)": "[-1].id", "@(2,to)": "[-1].to" } } } } } ]
关键说明
[]:让Jolt自动向结果数组追加新元素,彻底避免手动指定索引引发的冲突;[-1]:指向结果数组的最后一个元素(也就是刚放入的area对象),确保id和to能准确关联到对应的area对象;@(2,id):向上遍历2层获取外层对象的id字段(第一层是from的子元素,第二层是外层的主对象)。
最终期望输出
[ {"area1":1,"id":111,"to":"destination1"}, {"area2":1,"id":111,"to":"destination1"}, {"area3":1,"id":111,"to":"destination1"}, {"area1":2,"id":222,"to":"destination2"}, {"area2":2,"id":222,"to":"destination2"}, {"area3":2,"id":222,"to":"destination2"} ]
内容的提问来源于stack exchange,提问作者Sven
相关产品推荐
相关产品推荐

