Jolt转换问题求助:无法生成预期输出,Photos数组元素数量不固定
修正后的Jolt Spec
[ { "operation": "shift", "spec": { "Entity": { "card": { "name": "Photos[0].no", "lastName": "Photos[0].caption2" }, "Photos": { "*": { "Id": "Photos[&1+1].no", "Caption": "Photos[&1+1].caption2" } } } } } ]
问题原因说明
原Spec中,card的字段被写入Photos[0],同时原Photos数组的第一个元素(索引0)也被写入Photos[0],Jolt会将同一键下的多个值合并为数组,导致Photos[0]的no和caption2变成数组类型。
修正思路
- 将
card的name和lastName直接映射为Photos数组的第一个元素(索引0) - 原
Photos数组的每个元素,通过&1+1将其索引值加1,向后偏移一位(原索引0→1,原索引1→2,以此类推),避免与第一个元素的键冲突,保证每个元素的字段都是单一值
验证结果
使用修正后的Spec转换输入JSON,将得到预期输出:
{ "Photos": [ { "no": "RAM", "caption2": "ABU" }, { "no": "327703", "caption2": "TEST>> photo 1" }, { "no": "327704", "caption2": "TEST>> photo 2" } ] }
内容的提问来源于stack exchange,提问作者Philanthropic
相关产品推荐
相关产品推荐

