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

如何使用JOLT转换JSON数组值?含嵌套数组场景求助

JOLT转换解决方案:替换指定数组元素

单层数组场景

输入示例

[
  {
    "key": "X1"
  },
  {
    "key": "X20"
  },
  {
    "key": "X100"
  }
]

JOLT转换规则

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "key": {
          "X20": {
            "#Z": "[&2].key"
          },
          "*": {
            "$": "[&2].key"
          }
        }
      }
    }
  }
]

规则说明

  • 用shift操作遍历数组的每个元素
  • 匹配key字段值为X20的条目,用#Z硬编码替换该值
  • 其他key值通过$保留原内容
  • &2用于定位到原数组的对应索引,保证替换后元素位置不变

嵌套数组场景

输入示例

[
  {
    "id": "4",
    "array": [
      {
        "key": "X1",
        "key2": "some_value1_1"
      },
      {
        "key": "X20",
        "key2": "some_value1_2"
      }
    ]
  },
  {
    "id": "5",
    "array": [
      {
        "key": "X20",
        "key2": "some_value2_1"
      },
      {
        "key": "X2",
        "key2": "some_value2_2"
      }
    ]
  }
]

JOLT转换规则

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "id": "[&1].id",
        "array": {
          "*": {
            "key": {
              "X20": {
                "#Z": "[&4].array[&2].key"
              },
              "*": {
                "$": "[&4].array[&2].key"
              }
            },
            "*": "[&3].array[&1].&"
          }
        }
      }
    }
  }
]

规则说明

  • 先遍历外层数组,用[&1].id保留每个元素的id字段
  • 针对每个元素下的array数组,遍历其内部元素:
    • 对key字段做匹配替换,X20替换为Z,其他值保留
    • 用"*": "[&3].array[&1].&"统一保留array元素中的其他字段(比如key2),无需逐个指定字段名
  • &4定位外层数组的索引,&2定位内部array的元素索引,确保整个JSON结构和元素位置不变

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 04:00:56