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

Jolt转换需求:通过fulfillmentId匹配对象替换订单字段

Jolt转换实现订单关联配送信息

可以通过两步Shift操作实现需求:先将fulfillments数组转换为以fulfillmentId为键的映射表,再将每个订单与对应的配送信息关联替换。

完整Jolt转换规则

[
  {
    "operation": "shift",
    "spec": {
      "orders": "orders",
      "fulfillments": {
        "*": {
          "fulfillmentId": "fulfillmentMap.&",
          "@": "fulfillmentMap.&"
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "orders": {
        "*": {
          "orderNo": "orders[&1].orderNo",
          "orderType": "orders[&1].orderType",
          "fulfillmentId": {
            "@(2,fulfillmentMap.&)": "orders[&2].fulfillment"
          }
        }
      }
    }
  }
]

转换步骤说明

  • 第一步Shift:构建配送信息映射表

    • 将原数据中的fulfillments数组转换为fulfillmentMap对象,用每个配送项的fulfillmentId作为键,整个配送对象作为值,方便后续快速匹配。
    • 同时保留原orders数组,不做修改。
  • 第二步Shift:关联订单与配送信息

    • 遍历每个订单,保留orderNo和orderType字段;
    • 通过订单中的fulfillmentId,从fulfillmentMap中取出对应的配送对象,赋值给新的fulfillment字段;
    • 自动丢弃原订单中的fulfillmentId字段,最终得到期望的输出结构。

测试验证

输入数据:

{"orders": [{"orderNo": "12345", "orderType": "online", "fulfillmentId": "123"}, {"orderNo": "54321", "orderType": "in store", "fulfillmentId": "987"}], "fulfillments": [{"fulfillmentId": "123", "address": "123 fake street", "type": "delivery"}, {"fulfillmentId": "987", "address": "321 main street", "type": "pickup"}]}

输出结果:

{"orders": [{"orderNo": "12345", "orderType": "online", "fulfillment": {"fulfillmentId": "123", "address": "123 fake street", "type": "delivery"}}, {"orderNo": "54321", "orderType": "in store", "fulfillment": {"fulfillmentId": "987", "address": "321 main street", "type": "pickup"}}]}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 20:43:24