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

如何用Jolt移除不存在id键的JSON数组条目

使用Jolt实现过滤含id的数组元素并保留指定字段

输入JSON:

[
  {
    "id": "112",
    "key": "value1",
    "dfsf": "dffd"
  },
  {
    "key1": "value2"
  },
  {
    "id": "113",
    "key2": "value3"
  }
]

期望输出JSON:

[
  {
    "id": "112",
    "key": "value1"
  },
  {
    "id": "113",
    "key2": "value3"
  }
]

这里提供两种适配不同场景的Jolt转换方案:

方案一:精准保留指定业务字段

适合明确知道要保留哪些字段的场景,直接指定需要保留的业务键:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "id": {
          "@(2,id)": "[#2].id",
          "@(2,key)": "[#2].key",
          "@(2,key2)": "[#2].key2"
        }
      }
    }
  },
  {
    "operation": "remove",
    "spec": {
      "*": {
        "*": {
          "$null": ""
        }
      }
    }
  }
]
  • 第一阶段shift:遍历数组每个元素,只处理包含id的条目,通过@(2,xxx)回溯提取需要保留的字段,[#2]对应原数组元素的索引位置。
  • 第二阶段remove:移除转换后生成的null值字段(比如第一个元素没有key2,会被自动置为null,这一步清理掉这类无用字段)。

方案二:排除指定冗余字段后保留其余内容

适合只需要剔除少数无关字段的场景,先清理冗余再过滤条目:

[
  {
    "operation": "remove",
    "spec": {
      "*": {
        "dfsf": ""
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "id": {
          "@(2)": "[#2]"
        }
      }
    }
  }
]
  • 第一阶段remove:遍历所有元素,直接删掉不需要的dfsf字段。
  • 第二阶段shift:仅保留包含id的完整元素,无id的条目会被自动过滤。

内容的提问来源于stack exchange,提问作者Shashi Kiran GM

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 02:22:36