JOLT JSON转换求助:将含列表的嵌套JSON转换为指定结构
JOLT JSON转换解决方案
修正后的JOLT转换规范
[ { "operation": "shift", "spec": { "userData": { "*": { "userId": "data.[&1].ID", "age|firstName|lastname|gender|grade|birthday": "data.[&1].&", "zipCode": { "#custom-field1": "data.[&2].address[0].property", "@": "data.[&2].address[0].value" }, "street": { "#custom-field2": "data.[&2].address[1].property", "@": "data.[&2].address[1].value" }, "city": { "#custom-field3": "data.[&2].address[2].property", "@": "data.[&2].address[2].value" }, "country": { "#custom-field4": "data.[&2].address[3].property", "@": "data.[&2].address[3].value" } } } } } ]
核心修正说明
- 地址字段归属调整:原规范把地址数据输出到全局独立对象,现在直接将每个地址项映射到对应用户的
address数组里。&2是JOLT的索引引用,指向userData数组的当前元素位置,确保地址和用户一一对应。 - 固定数组索引:给每个地址字段分配0-3的索引,保证
address数组内元素顺序和期望一致。 - 精准匹配非地址字段:用
|分隔需要保留的字段,避免地址字段被误映射到用户的基础属性中,逻辑更清晰。
转换效果
使用这个规范转换后,输出完全符合期望结构:每个用户对象包含完整的基础属性,同时带有address数组,数组内每个元素对应一个地址属性的property和value键值对。
内容的提问来源于stack exchange,提问作者Prasad S Deshpande
相关产品推荐
相关产品推荐

