如何修改JOLT规格将指定对象放入数组?
JOLT 规格修改指南
要将名为item的完整对象封装到数组中,可通过以下 JOLT 转换规则实现:
核心 Shift 转换操作
如果当前输出里的item是顶层对象,想要将其包装为数组,使用如下 Shift 规格即可:
[ { "operation": "shift", "spec": { "item": { "@": "targetArray[0]" // 将item对象映射到目标数组的第一个元素 } } } ]
将targetArray替换为你期望的数组字段名即可。
保留其他字段的场景
若输入中还有其他需要保留的顶层字段,只需在 spec 中添加对应的映射规则:
[ { "operation": "shift", "spec": { "otherField1": "otherField1", // 保留原有字段 "otherField2": "otherField2", "item": { "@": "targetArray[0]" } } } ]
批量处理多个 item 的情况
如果输入中存在多个item对象(比如原始输入就是数组形式),想要将它们全部放入目标数组,可调整为:
[ { "operation": "shift", "spec": { "item": { "@": "targetArray[]" // 不带索引,自动追加所有item元素到数组 } } } ]
关键注意点
- 若现有 JOLT 规格已对
item有处理逻辑,需确保新的数组映射逻辑与原有逻辑兼容,避免字段覆盖或丢失。 - 确认目标数组的字段名与期望输出一致,避免拼写错误。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

