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

Jolt转换:处理同一键值为字符串或对象的JSON数据

Jolt转换:统一处理location字段的对象/字符串类型

可以通过以下Jolt转换规则实现需求,核心是利用shift操作的路径匹配优先级,分别处理location为对象和字符串的情况:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "id": "[&1].id",
        "location": {
          "value": "[&2].loc",
          "@(0)": "[&2].loc"
        }
      }
    }
  }
]

规则说明:

  • *:遍历输入数组中的每一个元素
  • "id": "[&1].id":直接将原元素的id字段映射到结果数组对应位置的id字段,[&1]表示当前数组元素的索引位置
  • 处理location字段时:
    • "value": "[&2].loc":当location是包含value字段的对象时,将location.value的值赋值给结果的loc字段,[&2]表示向上回溯两层(回到当前数组元素的层级)
    • "@(0)": "[&2].loc":当location是字符串时,@(0)表示取location节点自身的值,赋值给结果的loc字段

由于Jolt会优先匹配更具体的路径(location.value比@(0)路径更明确),所以两种类型的location会被正确处理,不会产生冲突。

输入输出验证

输入数据:

[
  {
    "id": "id1",
    "location": {
      "value": "loc-123"
    }
  },
  {
    "id": "id2",
    "location": {
      "value": "loc-789"
    }
  },
  {
    "id": "id3",
    "location": "loc-666"
  }
]

转换后输出:

[
  {
    "id": "id1",
    "loc": "loc-123"
  },
  {
    "id": "id2",
    "loc": "loc-789"
  },
  {
    "id": "id3",
    "loc": "loc-666"
  }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 02:25:15