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

JOLT:基于字段值合并两个数组的JSON转换需求

JOLT转换方案:根据作者ID关联合并图书数据

输入JSON

{
    "body": {
        "authors": [
        {
            "ID": 1,
            "name": "Hans",
            "timeStamp": "2020-01-01T00:57:36+00:00"
        },
        {
            "ID": 2,
            "name": "Peter",
            "timeStamp": "2020-01-01T01:00:15+00:00"
        }
        ],
        "releases": {
        "bookdata": [
            {
            "bookname": "bla",
            "authorID": 1
            },
            {
            "bookname": "blub",
            "authorID": 2
            }
        ]
        }
    }
}

期望输出JSON

{
    "body": {
        "releases": {
        "bookdata": [
            {
            "bookname": "bla",
            "authorName": "Hans",
            "authorTimeStamp": "2020-01-01T00:57:36+00:00"
            },
            {
            "bookname": "blub",
            "authorName": "Peter",
            "authorTimeStamp": "2020-01-01T01:00:15+00:00"
            }
        ]
        }
    }
}

JOLT转换规则

[
  {
    "operation": "shift",
    "spec": {
      "body": {
        "authors": {
          "*": {
            "ID": "body.authorsMap.&",
            "name": "body.authorsMap.&.authorName",
            "timeStamp": "body.authorsMap.&.authorTimeStamp"
          }
        },
        "releases": "body.releases"
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "body": {
        "releases": {
          "bookdata": {
            "*": {
              "bookname": "body.releases.bookdata.[&1].bookname",
              "authorID": {
                "@(3,authorsMap.&)": "body.releases.bookdata.[&2]"
              }
            }
          }
        }
      }
    }
  },
  {
    "operation": "remove",
    "spec": {
      "body": {
        "authorsMap": ""
      }
    }
  }
]

规则说明

  1. 第一步(shift操作):把authors数组转成以作者ID为键的authorsMap对象,同时将原作者的name重命名为authorName、timeStamp重命名为authorTimeStamp,保留原releases数据。
  2. 第二步(shift操作):遍历bookdata数组,保留每个元素的bookname,再通过authorID关联authorsMap里对应的作者信息,合并到当前bookdata元素中。
  3. 第三步(remove操作):删除临时生成的authorsMap对象,得到最终目标结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 18:57:57