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

如何通过Jolt转换将items的folderId替换为对应folders的name

Jolt转换解决方案:替换items的folderId为匹配文件夹名称

输入示例

{
  "folders": [
    {
      "id": "folder_1",
      "name": "文档文件夹"
    },
    {
      "id": "folder_2",
      "name": "图片文件夹"
    }
  ],
  "items": [
    {
      "id": "item_1",
      "folderId": "folder_1"
    },
    {
      "id": "item_2",
      "folderId": "folder_2"
    },
    {
      "id": "item_3",
      "folderId": "folder_1"
    }
  ]
}

期望输出

{
  "folders": [
    {
      "id": "folder_1",
      "name": "文档文件夹"
    },
    {
      "id": "folder_2",
      "name": "图片文件夹"
    }
  ],
  "items": [
    {
      "id": "item_1",
      "folderId": "文档文件夹"
    },
    {
      "id": "item_2",
      "folderId": "图片文件夹"
    },
    {
      "id": "item_3",
      "folderId": "文档文件夹"
    }
  ]
}

可行Jolt规则

[
  {
    "operation": "shift",
    "spec": {
      "folders": {
        "*": {
          "id": "folderMap.&",
          "name": "folderMap.&"
        }
      },
      "items": "items",
      "*": "&"
    }
  },
  {
    "operation": "shift",
    "spec": {
      "items": {
        "*": {
          "id": "items.[&1].id",
          "folderId": {
            "@(2,folderMap.&)": "items.[&1].folderId"
          }
        }
      },
      "folders": "folders",
      "*": "&"
    }
  },
  {
    "operation": "remove",
    "spec": {
      "folderMap": ""
    }
  }
]

规则解析

  • 第一步:构建文件夹键值映射
    通过shift操作把folders数组转换成folderMap对象,以文件夹的id为键、name为值,方便后续快速匹配。同时保留原items数组和其他顶层字段。

  • 第二步:替换folderId字段
    遍历items数组的每个元素:

    • 保留id字段不变;
    • 用@(2,folderMap.&)语法,向上两层获取folderMap,并以当前folderId的值为键取出对应的文件夹名称,替换原folderId字段。
  • 第三步:清理临时数据
    通过remove操作删除临时生成的folderMap对象,得到最终结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 20:52:23