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

基于条件向数组添加元素:ID与ultimateId的输出规则调整需求

问题:根据ultimateId和ID的存在情况生成对应输出列表

需求规则

  • 若输入同时存在ultimateId和ID,仅将ultimateId对应的对象加入输出列表
  • 若输入仅存在ID而无ultimateId,则将ID对应的对象加入输出列表

当前输入示例

{
  "accountType": "CUSTOMER",
  "AccountInfo": {
    "ultimateId": "DF6ECC32",
    "id": "DJKWNA"
  },
  "AccountAddresses": [
    {
      "modId": "Al-Jazeera",
      "businessAddressEndDateTime": "2020-07-01T00:00:00.00Z"
    }
  ],
  "PartyDetails": {
    "domesticUltimateDunsPostalCode": "94115",
    "subIndustryCode": "1232"
  }
}

当前转换规则(SPECS)

[
  {
    "operation": "shift",
    "spec": {
      "AccountInfo": {
        "id": {
          "@2,partyAltIdResellerUidSrcKey": "PartyAlternateId.item[#2].key.sourceKey",
          "@1,resellerUId": "PartyAlternateId.item[#2].AltIdVal",
          "@2,created": "PartyAlternateId.item[#2].EffStrtDt",
          "#ID": "PartyAlternateId.item[#2].AltIdType.idTypDesc",
          "#0004": "PartyAlternateId.item[#2].AltIdType.idTyp"
        },
        "ultimateId": {
          "@2,partyAltIdUltimateResellerUidSrcKey": "PartyAlternateId.item[#2].key.sourceKey",
          "@1,resellerUltimateSalesLegacySourceId": "PartyAlternateId.item[#2].AltIdVal",
          "@2,created": "PartyAlternateId.item[#2].EffStrtDt",
          "#Ultimate ID": "PartyAlternateId.item[#2].AltIdType.idTypDesc",
          "#0018": "PartyAlternateId.item[#2].AltIdType.idTyp"
        }
      }
    }
  }
]

当前转换输出结果

{
  "PartyAlternateId": {
    "item": [
      {
        "AltIdType": {
          "idTypDesc": "ID",
          "idTyp": "0004"
        }
      },
      {
        "AltIdType": {
          "idTypDesc": "Ultimate ID",
          "idTyp": "0018"
        }
      }
    ]
  }
}

期望输出

当输入同时存在ID和ultimateId时:

{
  "PartyAlternateId": {
    "item": [
      {
        "AltIdType": {
          "idTypDesc": "Ultimate ID",
          "idTyp": "0018"
        }
      }
    ]
  }
}

当输入仅存在ID而无ultimateId时:

{
  "PartyAlternateId": {
    "item": [
      {
        "AltIdType": {
          "idTypDesc": "ID",
          "idTyp": "0004"
        }
      }
    ]
  }
}

调整后的转换规则

[
  {
    "operation": "shift",
    "spec": {
      "AccountInfo": {
        "ultimateId": {
          "@2,partyAltIdUltimateResellerUidSrcKey": "PartyAlternateId.item[0].key.sourceKey",
          "@1,resellerUltimateSalesLegacySourceId": "PartyAlternateId.item[0].AltIdVal",
          "@2,created": "PartyAlternateId.item[0].EffStrtDt",
          "#Ultimate ID": "PartyAlternateId.item[0].AltIdType.idTypDesc",
          "#0018": "PartyAlternateId.item[0].AltIdType.idTyp"
        },
        "id": {
          "@2,ultimateId": {
            "*": null
          },
          "$": {
            "@2,partyAltIdResellerUidSrcKey": "PartyAlternateId.item[0].key.sourceKey",
            "@1,resellerUId": "PartyAlternateId.item[0].AltIdVal",
            "@2,created": "PartyAlternateId.item[0].EffStrtDt",
            "#ID": "PartyAlternateId.item[0].AltIdType.idTypDesc",
            "#0004": "PartyAlternateId.item[0].AltIdType.idTyp"
          }
        }
      }
    }
  },
  {
    "operation": "remove",
    "spec": {
      "PartyAlternateId": {
        "item": {
          "*": {
            "key": {
              "sourceKey": {
                "null": ""
              }
            },
            "AltIdVal": {
              "null": ""
            },
            "EffStrtDt": {
              "null": ""
            }
          }
        }
      }
    }
  }
]

规则说明

  1. 优先处理ultimateId:直接对ultimateId执行转换逻辑,输出到item[0]位置
  2. 条件判断处理id:通过@2,ultimateId检查上级节点中ultimateId是否存在:
    • 若存在,将id对应的转换结果设为null,忽略该字段
    • 若不存在,执行id的转换逻辑,同样输出到item[0]位置
  3. 清理空节点:添加remove操作,移除因条件判断产生的null属性,保证输出结构整洁

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 22:25:18