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

Jolt转换时如何将根节点nationality字段加入输出数组每个对象

Jolt 嵌套JSON转换实现方案

核心实现逻辑

要将根节点的nationality字段注入到results数组的每一个输出对象中,只需在原有shift操作的results.*层级下,使用Jolt的上级节点取值语法@(2,nationality)获取根节点的国籍字段即可。

输入JSON示例(符合需求描述的典型结构)

{
  "nationality": "CN",
  "results": [
    {
      "gender": "male",
      "name": {
        "first": "张三",
        "last": "李"
      },
      "location": {
        "city": "杭州",
        "state": "浙江"
      },
      "email": "zhangsan@example.com",
      "dob": "1990-01-01",
      "phone": "13800138000"
    }
  ]
}

完整正确的Jolt Spec

[
  {
    "operation": "shift",
    "spec": {
      "results": {
        "*": {
          // 注入根节点的nationality字段到当前输出对象
          "@(2,nationality)": "[&1].nationality",
          // 以下为原有字段提取逻辑,可根据实际字段名调整
          "gender": "[&1].gender",
          "name": {
            "first": "[&2].firstName",
            "last": "[&2].lastName"
          },
          "location": {
            "city": "[&2].city",
            "state": "[&2].province"
          },
          "email": "[&1].email",
          "dob": "[&1].birthDate",
          "phone": "[&1].phone"
        }
      }
    }
  }
]

输出结果示例

[
  {
    "nationality": "CN",
    "gender": "male",
    "firstName": "张三",
    "lastName": "李",
    "city": "杭州",
    "province": "浙江",
    "email": "zhangsan@example.com",
    "birthDate": "1990-01-01",
    "phone": "13800138000"
  }
]

语法说明

@(2,nationality)表示从当前节点向上回溯2层取值:当前节点为results数组的第N个元素,向上1层是results数组本身,向上2层是输入JSON的根节点,刚好是nationality字段所在的层级。如果原有spec的字段映射规则和示例不同,只需保留原有映射规则,新增"@(2,nationality)": "[&1].nationality"这一行到results.*对应的spec块中即可生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 15:30:03