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

使用Jolt基于查找映射替换数组值时Spec不生效问题

问题解决:Jolt根据查找映射替换数组值

你的Jolt Spec失效核心原因是:&在当前层级引用的是数组的索引数字,而非keys数组中当前元素的实际字符串值,导致无法匹配lookup对象里的键名。

正确的Jolt Shift Spec

[
  {
    "operation": "shift",
    "spec": {
      "records": {
        "*": {
          "id": "data.records[&1].id",
          "keys": {
            "*": {
              "@(3,lookup.@)": "data.records[&3].vals[&1]"
            }
          }
        }
      }
    }
  }
]

关键逻辑说明

  • @:直接获取当前keys数组的元素值(例如ba2c89c3)
  • @(3,lookup.@):向上回溯3层定位到根节点的lookup对象,再用当前元素值作为键,取出对应的映射值
  • data.records[&3].vals[&1]:&3对应外层records数组的索引,&1对应当前keys数组的索引,保证映射后的值按原数组顺序存入vals数组

验证输出

执行上述Spec后,输出将完全符合预期:

{
  "data": {
    "records": [
      {
        "id": "1",
        "vals": [
          "EE",
          "EL"
        ]
      }
    ]
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 14:47:05