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

请求提供/优化Jolt Spec以去除嵌套JSON中的重复项

Jolt 数组去重 Spec 实现

针对你遇到的WFI_Customer和WFI_Reasons数组重复条目问题,以下是精准的Jolt转换Spec,可实现按唯一字段去重,输出无重复的目标JSON。

示例输入

假设你的输入JSON结构如下(包含重复条目):

{
  "WFI_Customer": [
    { "id": 1, "name": "Alice" },
    { "id": 2, "name": "Bob" },
    { "id": 1, "name": "Alice" }
  ],
  "WFI_Reasons": [
    { "code": "R01", "desc": "Late Payment" },
    { "code": "R02", "desc": "Insufficient Funds" },
    { "code": "R01", "desc": "Late Payment" }
  ]
}

去重Jolt Spec

[
  // 步骤1:按唯一字段将数组元素转为键值对(自动去重)
  {
    "operation": "shift",
    "spec": {
      "WFI_Customer": {
        "*": {
          "id": "WFI_Customer_temp.@(1,id).id",
          "name": "WFI_Customer_temp.@(1,id).name"
        }
      },
      "WFI_Reasons": {
        "*": {
          "code": "WFI_Reasons_temp.@(1,code).code",
          "desc": "WFI_Reasons_temp.@(1,code).desc"
        }
      }
    }
  },
  // 步骤2:将去重后的键值对转回数组
  {
    "operation": "shift",
    "spec": {
      "WFI_Customer_temp": {
        "*": "WFI_Customer[]"
      },
      "WFI_Reasons_temp": {
        "*": "WFI_Reasons[]"
      }
    }
  }
]

关键说明

  • 去重逻辑:第一个shift操作利用对象键的唯一性,将数组元素以id(WFI_Customer)和code(WFI_Reasons)作为临时键,重复元素会被自动覆盖(因相同键仅保留最后一个实例,且重复元素内容一致,结果无影响)。
  • 适配调整:如果你的数组唯一标识不是id或code,只需将@(1,id)替换为对应字段(如@(1,name))即可。
  • 通用去重备选:若需按整个对象完全匹配去重,可使用cardinality操作,但该方式依赖对象哈希匹配,可控性稍弱:
    [
      {
        "operation": "cardinality",
        "spec": {
          "WFI_Customer": "ONE",
          "WFI_Reasons": "ONE"
        }
      }
    ]
    

转换后输出

{
  "WFI_Customer": [
    { "id": 1, "name": "Alice" },
    { "id": 2, "name": "Bob" }
  ],
  "WFI_Reasons": [
    { "code": "R01", "desc": "Late Payment" },
    { "code": "R02", "desc": "Insufficient Funds" }
  ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 06:16:11