如何修改JOLT规格让distributedAmount字段正常输出并排序?
解决JOLT中distributedAmount字段未输出的问题
问题根源很明确:你的JOLT规格只配置了itemTotalAmount的转换逻辑,完全没给distributedAmount做映射或保留规则,导致这个字段被默认过滤掉了。结合你期望的输出结构,按以下步骤调整规格即可:
1. 给distributedAmount添加映射规则
如果原规格用了shift操作来调整字段层级,直接在对应层级下加一行distributedAmount的映射:
{ "operation": "shift", "spec": { // 保留你原来的itemTotalAmount映射 "itemTotalAmount": "目标层级.itemTotalAmount", // 新增这行,把distributedAmount映射到相同层级 "distributedAmount": "目标层级.distributedAmount" } }
2. 排序操作中包含distributedAmount
如果你用了sort操作来固定字段顺序,把distributedAmount加入排序列表,按你想要的位置排列:
{ "operation": "sort", "spec": { "目标层级": ["itemTotalAmount", "distributedAmount"] // 按需求调整顺序 } }
3. 排查是否有过滤规则误删字段
检查规格里有没有remove或者default操作把distributedAmount删掉了,如果有,直接移除针对这个字段的删除规则。
完整示例(适配排序+映射场景)
假设你要把两个字段放到details层级,且itemTotalAmount在前,完整规格示例:
[ { "operation": "shift", "spec": { "itemTotalAmount": "details.itemTotalAmount", "distributedAmount": "details.distributedAmount" } }, { "operation": "sort", "spec": { "details": ["itemTotalAmount", "distributedAmount"] } } ]
最后验证下:确认输入数据里distributedAmount的路径和规格里的匹配,测试调整后的规格,就能看到两个字段都正常输出且顺序符合要求了。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

