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

如何在JOLT中实现当WG_SHIP_ADDR_TYPE为2时的字段映射?

JOLT条件映射实现:当WG_SHIP_ADDR_TYPE为2时映射地址字段

完全可行,JOLT的Shift转换支持通过值匹配语法实现条件逻辑,以下是满足需求的转换规范(spec)及说明:

转换Spec

[
  {
    "operation": "shift",
    "spec": {
      "PURCHASE_ORDER_DISPATCH": {
        "MsgData": {
          "Transaction": {
            "PO_POD_HDR_EVW1": {
              "PO_POD_LN_EVW1": {
                "PO_POD_SHP_EVW1": {
                  "WG_SHIP_ADDR_TYPE": {
                    "2": {
                      "@2,DESCR_SHIPTO": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityDetails.poDetails.poHeader.shipToAddress.addressName",
                      "@2,ADDRESS1_SHIPTO": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityDetails.poDetails.poHeader.shipToAddress.addressLine"
                    }
                  },
                  "#UPSERT": "integration-inbound:IntegrationDetails.integrationEntities.integrationEntity.integrationEntityHeader.action"
                }
              }
            }
          }
        }
      }
    }
  }
]

关键逻辑说明

  1. 条件匹配:通过WG_SHIP_ADDR_TYPE节点下的"2"子节点实现精准值匹配,只有当该字段值为2时,才会触发内部的地址字段映射。
  2. 层级回溯取值:@2,DESCR_SHIPTO中的@2代表向上回溯2层(从当前的"2"节点回到PO_POD_SHP_EVW1层级),从而获取同层级的DESCR_SHIPTO和ADDRESS1_SHIPTO字段值。
  3. 固定字段映射:#UPSERT是硬编码的常量值,直接映射到输出的action字段,不受条件限制。如果需要仅当条件满足时才生成整个输出结构,可将#UPSERT移动到"2"节点内部。

验证结果

将你提供的输入JSON与上述Spec一起运行,将得到完全符合预期的输出。若WG_SHIP_ADDR_TYPE不为2,则shipToAddress相关字段不会被生成,仅保留action字段(若调整了spec则整个结构不会生成)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 10:40:28