Jolt转换嵌套JSON时ATTRIBUTES对象未生成列表如何解决
Jolt嵌套JSON结构转换修复方案
问题根因
原Spec中ATTRIBUTES节点内部的路径引用错误:进入ATTRIBUTES层级后,原路径使用的&1指代的是ATTRIBUTES自身,无法匹配外层products数组的索引,同时原Spec存在语法闭合错误,共同导致attributes字段映射丢失。
调整后完整Jolt Spec
[ { "operation": "modify-overwrite-beta", "spec": { "data": { "PRODUCTS": "=toList" } } }, { "operation": "shift", "spec": { "data": { "PRODUCTS": { "*": { "ProductID": "data.products[&1].productId", "ModelNumber": "data.products[&1].modelNumber", "Price": "data.products[&1].unitPrice", "Quantity": "data.products[&1].quantity", "ATTRIBUTES": { "ProductID": "data.products[&2].attributes[0].productId", "Height": "data.products[&2].attributes[0].height", "Width": "data.products[&2].attributes[0].width" } } } } } }, { "operation": "default", "spec": { "data": { "*": {} } } } ]
调整说明
- 把ATTRIBUTES内部字段映射路径中的
&1替换为&2,向上回溯两层即可正确获取外层products数组的索引值 - attributes数组下标直接固定为0,就能将单个ATTRIBUTES对象转换为要求的数组格式
- 修正了原Spec中default操作块的语法闭合错误
内容的提问来源于stack exchange,提问作者Jestino Sam
相关产品推荐
相关产品推荐

