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

JOLT转换问题:如何将id字段移入user_roles数组的每个元素

问题:将顶层id字段移入user_roles数组的每个元素中

我尝试把输入数据里的顶层id字段添加到user_roles数组的每个元素内,但使用的JOLT规格未达到预期效果,需要修正。

输入数据

{
  "id": "657a9dc588b19",
  "user_roles": [
    {
      "role": 2,
      "status": 1,
      "is_owner": true
    },
    {
      "role": 5,
      "status": 1,
      "is_owner": true
    },
    {
      "role": 3,
      "status": 1,
      "is_owner": true
    }
  ]
}

原JOLT规格(无效)

[
  {
    "operation": "shift",
    "spec": {
      "user_roles": {
        "*": {
          "_id": "user_roles[&0]._id",
          "*": "user_roles[&1].&"
        }
      }
    }
  }
]

预期结果

{
  "user_roles": [
    {
      "id": "657a9dc588b19",
      "role": 2,
      "status": 1,
      "is_owner": true
    },
    {
      "id": "657a9dc588b19",
      "role": 5,
      "status": 1,
      "is_owner": true
    },
    {
      "id": "657a9dc588b19",
      "role": 3,
      "status": 1,
      "is_owner": true
    }
  ]
}

原规格的问题分析

  1. 错误引用了不存在的_id字段,输入里实际是顶层的id
  2. 未正确捕获顶层的id值,没有从顶层节点向下映射到数组元素
  3. 数组索引&0使用错误,导致字段映射位置出错

正确的JOLT规格

[
  {
    "operation": "shift",
    "spec": {
      "user_roles": {
        "*": {
          "@2,id": "user_roles[&1].id",
          "*": "user_roles[&1].&"
        }
      }
    }
  }
]

规格解释

  • @2,id:通过@引用上层节点,2表示向上跳转两层(从当前数组元素→user_roles→顶层),获取顶层的id值
  • &1:代表当前遍历的user_roles数组的索引,确保每个数组元素都能正确绑定id
  • "*": "user_roles[&1].&":保留数组元素原有的所有字段,&表示沿用原字段名

内容的提问来源于stack exchange,提问作者hoa.le

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 01:23:27