You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Jolt实现含数组对象的嵌套JSON字段重排

Fixing Jolt Shift Operation to Preserve Nested Array and Additional Fields

嘿,我看到你的Jolt转换遇到了字段丢失的问题——具体是Order数组和Paymenttype字段没出现在输出里对吧?这是因为Jolt的shift操作默认只会保留你显式指定映射的字段,你的当前spec里没包含这两个字段,所以它们被过滤掉了。这里有两种简单的修复方式,都能得到你想要的输出:

方法1:显式映射所有需要保留的字段

直接在shift规则里添加Order和Paymenttype的映射即可,Jolt会自动保留数组的结构,不需要额外处理:

[
  {
    "operation": "shift",
    "spec": {
      "_id": "_id",
      "Name": "Name",
      "State": "State",
      "Phone": "Phone",
      "Order": "Order",
      "Paymenttype": "Paymenttype"
    }
  }
]

这种方式适合你明确知道需要保留哪些字段的场景,能精准控制输出内容。

方法2:用通配符批量保留未指定字段

如果你需要保留大部分字段,或者不想每次新增字段都手动修改规则,可以用*通配符匹配所有未被显式映射的字段,按原字段名保留:

[
  {
    "operation": "shift",
    "spec": {
      "_id": "_id",
      "Name": "Name",
      "State": "State",
      "Phone": "Phone",
      "*": "&"
    }
  }
]

"*": "&"的意思是:匹配所有没被上面规则覆盖的字段,&表示将字段值映射到和原字段名相同的输出字段中,这样不管是数组还是普通字段都会被保留。

验证结果

两种方法转换后都会得到你期望的输出:

{ "_id" : "1234", "Name" : "John", "State" : "NJ", "Phone" : "67755321", "Order": [ { "item": "pizza", "qty": 2 }, { "item": "coke", "qty": 2 } ], "Paymenttype": "Card" }

内容的提问来源于stack exchange,提问作者ravi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 14:27:35