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

JOLT TRANSFORM:拆分数组元素并分组生成WLSPDEXTREF001结构

JOLT转换方案:拆分分组clientId与demandNo为多对象数组

核心思路

通过shift操作提取所有带数字后缀的clientIdN和demandNoN字段,将同后缀的字段配对成单个对象,再按需清理无效元素,最终生成目标多对象数组结构。

步骤1:提取并配对同后缀字段

使用shift转换,把每个clientIdN和demandNoN映射到同一个数字后缀对应的数组索引对象中:

[
  {
    "operation": "shift",
    "spec": {
      "clientId*": {
        "$": "WLSPDEXTREF001[&1].clientId"
      },
      "demandNo*": {
        "$": "WLSPDEXTREF001[&1].demandNo"
      },
      "*": "&" // 保留其他非目标字段
    }
  }
]

步骤2:清理空元素(可选)

如果存在后缀不连续的情况(比如仅存在clientId1但无demandNo1),会生成空对象,可添加remove操作清理:

{
  "operation": "remove",
  "spec": {
    "WLSPDEXTREF001": {
      "*": {
        "": "" // 删除空对象内的空字段,或直接移除空对象
      }
    }
  }
}

完整转换Spec示例

[
  {
    "operation": "shift",
    "spec": {
      "clientId*": {
        "$": "WLSPDEXTREF001[&1].clientId"
      },
      "demandNo*": {
        "$": "WLSPDEXTREF001[&1].demandNo"
      },
      "*": "&"
    }
  },
  {
    "operation": "remove",
    "spec": {
      "WLSPDEXTREF001": {
        "*": {
          "": ""
        }
      }
    }
  }
]

示例验证

输入JSON

{
  "clientId1": "CLIENT_001",
  "demandNo1": "DEMAND_001",
  "clientId2": "CLIENT_002",
  "demandNo2": "DEMAND_002",
  "orderId": "ORD_12345"
}

输出JSON

{
  "orderId": "ORD_12345",
  "WLSPDEXTREF001": [
    {
      "clientId": "CLIENT_001",
      "demandNo": "DEMAND_001"
    },
    {
      "clientId": "CLIENT_002",
      "demandNo": "DEMAND_002"
    }
  ]
}

关键语法说明

  • &1:在shift操作中,指代当前匹配的通配符部分(即clientId*里的数字后缀N),确保同后缀的clientId和demandNo映射到同一个数组索引。
  • "$": "...":取当前字段的值作为目标字段的值。
  • "*": "&":保留所有未被匹配的原始字段,避免丢失其他业务数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 17:35:01