如何使用Jolt转换比较JSON字段并移除符合条件的列表项
Jolt转换:移除FromStore与ToStore值相同的数组元素
可以通过以下Jolt转换规范实现需求,核心利用shift操作结合条件判断过滤不符合要求的对象:
[ { "operation": "shift", "spec": { "*": { "FromStore": { "@(1,ToStore)": { "*": "" }, "*": { "@2": "[]" } } } } } ]
转换逻辑说明
- 遍历输入数组中的每个对象(通过顶级通配符
*) - 针对每个对象,取出
FromStore字段的值,对比同级的ToStore值(@(1,ToStore)表示向上1级获取ToStore字段) - 若
FromStore与ToStore值相等:将该对象映射为空字符串,直接丢弃 - 若两者值不等:通过
@2引用整个原始对象,并将其添加到输出数组中
验证示例
- 输入JSON:
[{"SlipNo": "3564300004","FromStore": "1","ToStore": "1","CreatedDate": "2022-05-18T08:20:23-04:00","TotalQty": 3,"items": [{"UPC": "8240959370255","shippedQuantity": 1},{"UPC": "8240959370266","shippedQuantity": 1},{"UPC": "8240959370277","shippedQuantity": 1}]} ,{"SlipNo": "3564400006","FromStore": "4","ToStore": "3","CreatedDate": "2022-05-18T08:20:23-04:00","TotalQty": 3,"items": [{"UPC": "8240959370210","shippedQuantity": 1},{"UPC": "824095937011","shippedQuantity": 1},{"UPC": "8240959370212","shippedQuantity": 1}]}]
- 输出JSON:
[{"SlipNo": "3564400006","FromStore": "4","ToStore": "3","CreatedDate": "2022-05-18T08:20:23-04:00","TotalQty": 3,"items": [{"UPC": "8240959370210","shippedQuantity": 1},{"UPC": "824095937011","shippedQuantity": 1},{"UPC": "8240959370212","shippedQuantity": 1}]}]
内容的提问来源于stack exchange,提问作者Yamini Bhagat
相关产品推荐
相关产品推荐

