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

使用JOLT实现JSON转换:将指定字段复制到数组每个对象

JOLT转换解决方案:将Owner字段批量插入数组对象中

输入JSON

{
  "AAA": {
    "Product": "Product A",
    "Owner": {
      "Name": "NAME SURNAME",
      "Age": "20",
      "ID": [
        {
          "IDType": "CPF",
          "IDNumber": "0000000000000"
        }
      ],
      "Contact": {
        "Email": "test@test.com",
        "Phone": "1111111111",
        "Add": {
          "Add1": "aaaa",
          "Add2": "bbbb",
          "City": "city"
        }
      }
    }
  },
  "BBB": [
    {
      "Field 1": "F1",
      "Field 2": "F2",
      "Field 3": {
        "F31": "F3.1",
        "F32": "F3.2"
      }
    },
    {
      "Field 1": "F1",
      "Field 2": "F2",
      "Field 3": {
        "F31": "F3.1",
        "F32": "F3.2"
      }
    },
    {
      "Field 1": "F1",
      "Field 2": "F2",
      "Field 3": {
        "F31": "F3.1",
        "F32": "F3.2"
      }
    }
  ]
}

期望输出JSON

{
  "AAA": {
    "Product": "Product A",
    "Owner": {
      "Name": "NAME SURNAME",
      "Age": "20",
      "ID": [
        {
          "IDType": "CPF",
          "IDNumber": "0000000000000"
        }
      ],
      "Contact": {
        "Email": "test@test.com",
        "Phone": "1111111111",
        "Add": {
          "Add1": "aaaa",
          "Add2": "bbbb",
          "City": "city"
        }
      }
    }
  },
  "BBB": [
    {
      "Field 1": "F1",
      "Field 2": "F2",
      "Field 3": {
        "F31": "F3.1",
        "F32": "F3.2",
        "New Field": {
          "Name": "NAME SURNAME",
          "Id": {
            "IDType": "CPF",
            "IDNumber": "0000000000000"
          },
          "Contact": {
            "Email": "test@test.com",
            "Phone": "1111111111",
            "Add": {
              "Add1": "aaaa",
              "Add2": "bbbb",
              "City": "city"
            }
          }
        }
      }
    },
    {
      "Field 1": "F1",
      "Field 2": "F2",
      "Field 3": {
        "F31": "F3.1",
        "F32": "F3.2",
        "New Field": {
          "Name": "NAME SURNAME",
          "Id": {
            "IDType": "CPF",
            "IDNumber": "0000000000000"
          },
          "Contact": {
            "Email": "test@test.com",
            "Phone": "1111111111",
            "Add": {
              "Add1": "aaaa",
              "Add2": "bbbb",
              "City": "city"
            }
          }
        }
      }
    },
    {
      "Field 1": "F1",
      "Field 2": "F2",
      "Field 3": {
        "F31": "F3.1",
        "F32": "F3.2",
        "New Field": {
          "Name": "NAME SURNAME",
          "Id": {
            "IDType": "CPF",
            "IDNumber": "0000000000000"
          },
          "Contact": {
            "Email": "test@test.com",
            "Phone": "1111111111",
            "Add": {
              "Add1": "aaaa",
              "Add2": "bbbb",
              "City": "city"
            }
          }
        }
      }
    }
  ]
}

JOLT转换规范

[
  {
    "operation": "shift",
    "spec": {
      "*": "&",
      "BBB": {
        "*": {
          "*": "BBB[&1].&",
          "Field 3": {
            "*": "BBB[&2].Field 3.&"
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": "&",
      "AAA": {
        "Owner": {
          "Name": "BBB[*].Field 3.New Field.Name",
          "ID": {
            "*": {
              "IDType": "BBB[&4].Field 3.New Field.Id.IDType",
              "IDNumber": "BBB[&4].Field 3.New Field.Id.IDNumber"
            }
          },
          "Contact": "BBB[*].Field 3.New Field.Contact"
        }
      }
    }
  }
]

转换逻辑说明

  • 第一步:保留原有结构
    通过shift操作完整保留输入中的所有字段,包括AAA的全部内容,以及BBB数组每个元素的Field 1、Field 2和Field 3内的原有字段。BBB[&1]中的&1对应数组元素的索引,确保每个元素的原有字段映射到正确位置。

  • 第二步:批量插入New Field
    针对AAA.Owner的字段,用BBB[*]遍历数组所有元素,将字段复制到每个元素的Field 3.New Field路径下:

    • 直接映射Name字段到目标路径;
    • 处理ID数组时,遍历数组元素(输入中仅一个),将其转换为Id对象(匹配输出的键名要求);
    • 直接复制整个Contact对象到目标路径;
    • &4是相对路径索引,从ID数组元素位置向上追溯4层到BBB根层级,确保所有BBB元素都能获取到Owner的ID信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 04:00:54