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

JOLT转换:如何保留指定JSON属性并移除大量冗余字段?

JOLT转换:保留指定根属性与数组内字段的正确方案

问题场景

需要处理含大量随机冗余字段的JSON,仅保留:

  • 根层级的root_element属性
  • 数组array_elements中每个元素的array_field字段

错误原因分析

之前的转换失败是因为数组字段的映射路径错误——直接将数组元素输出到根层级,而非嵌套在array_elements键下。当同时映射根属性时,JOLT会覆盖根层级的数组输出,最终只保留根属性。

正确的JOLT转换Spec

{
  "operation": "shift",
  "spec": {
    "root_element": "root_element",
    "array_elements": {
      "*": {
        "array_field": "array_elements[&1].array_field"
      }
    }
  }
}

转换效果

假设原始输入为:

{
  "root_element": 14,
  "another_root_element": "冗余字段",
  "array_elements": [
    {
      "array_field": 103854,
      "another_array_field": "冗余"
    },
    {
      "array_field": 9975,
      "another_array_field": "冗余"
    },
    {
      "array_field": 47551,
      "another_array_field": "冗余"
    }
  ]
}

转换后输出:

{
  "root_element": 14,
  "array_elements": [
    {
      "array_field": 103854
    },
    {
      "array_field": 9975
    },
    {
      "array_field": 47551
    }
  ]
}

关键说明

  • array_elements[&1].array_field:明确指定将数组元素的array_field映射到输出的array_elements数组中,&1表示引用当前数组元素的索引,保证数组结构正确。
  • 该方案通过显式映射需要保留的字段,自动忽略所有未在spec中定义的冗余字段,无需使用remove操作,适配大量随机冗余字段的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 23:32:52