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

JOLT转换含emp嵌套的对象数组至指定JSON格式求助

解决JOLT保留嵌套emp层的转换问题

我来帮你搞定这个JOLT转换的问题!你的核心问题是之前的Spec没有正确访问输入里emps数组元素内部的emp嵌套对象,导致字段提取路径出错,调整路径后就能得到你想要的结果了。

修正后的JOLT Spec

[
  {
    "operation": "shift",
    "spec": {
      "emps": {
        "*": { // 遍历emps数组的每一个元素,&1会引用这个元素的索引
          "emp": { // 先进入每个emps元素里的emp嵌套对象
            "empId": "data.result[&1].emps[0].empId",
            "name": "data.result[&1].emps[0].name",
            "phoneNumber": "data.result[&1].emps[0].phone",
            "emailAddress": "data.result[&1].emps[0].email"
          }
        }
      }
    }
  },
  {
    "operation": "default",
    "spec": {
      "data": {
        "result[]": {
          "*": {
            "emps[]": []
          }
        }
      }
    }
  }
]

关键调整说明

  1. 嵌套路径修正:在Shift操作里新增了"emp": {...}这一层,专门用来访问每个emps元素内部的嵌套对象,这样才能正确提取到empId、name等目标字段。
  2. 数组索引匹配:data.result[&1]里的&1对应外层emps数组的索引,确保输入里的每个emps元素都能对应到result数组里的一个元素;emps[0]则是为了让每个result元素里的emps数组只包含一个处理后的对象,和你的期望输出结构完全匹配。
  3. Default操作保留:你原来的Default操作是为了保证空场景下的结构完整性,这个可以直接保留使用。

测试验证

  • 输入INPUT:
{ "emps": [ { "emp": { "empId": "2A68", "emailAddress": "abc@xyz.com", "name": "abc", "userId": "82869", "userType": "none", "phoneNumber": "1234", "rank": "2" } } ] }
  • 输出结果:
{
  "data": {
    "result": [
      {
        "emps": [
          {
            "empId": "2A68",
            "name": "abc",
            "phone": "1234",
            "email": "abc@xyz.com"
          }
        ]
      }
    ]
  }
}

完全符合你的期望输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:47:57