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

如何使用Jolt Transformation规范移除数组中的null元素?

使用Jolt移除数组中的null元素

需要移除数组中的null元素,示例如下:

输入:

{
  "arrayOne": [
    null,
    {
      "key1": "value1",
      "key2": "value2"
    }
  ]
}

期望输出:

{
  "arrayOne": [
    {
      "key1": "value1",
      "key2": "value2"
    }
  ]
}

尝试使用recursivelySquashNulls未生效,所用Jolt spec如下:

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": "=recursivelySquashNulls"
    }
  }
]

解决方案

recursivelySquashNulls的作用是移除对象中的null属性,无法直接过滤数组内的null元素。要实现数组null元素的过滤,可使用shift操作,通过遍历数组并判断元素非null来保留有效项:

针对指定数组的Spec

[
  {
    "operation": "shift",
    "spec": {
      "arrayOne": {
        "*": {
          // 仅保留非null的数组元素
          "@": "arrayOne.[#2]"
        }
      }
    }
  }
]

说明

  • arrayOne.* 遍历目标数组的每一个元素
  • @ 代表当前遍历到的元素
  • [#2] 是Jolt的索引标记,会自动为非null元素重新生成连续的数组索引,从而剔除null项

适配所有数组的通用Spec

如果需要处理所有顶级数组(而非仅arrayOne),可以用通配符实现:

[
  {
    "operation": "shift",
    "spec": {
      "*": { // 匹配所有顶级键
        "*": {
          "@": "&2.[#2]" // &2 引用外层的顶级键(即数组名)
        }
      }
    }
  }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 04:12:36