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

如何调整JOLT转换规则,将数组多对象合并为单个嵌套对象

JOLT转换:将data数组的多个对象合并为单个对象数组元素

问题出在你当前shift操作里的data[]写法——每次映射字段时,[]会自动创建新的数组元素,导致每个键值对都被单独封装成一个对象。要实现数组里只包含一个包含所有键值对的对象,只需要把data[]改成data[0],让所有字段都映射到数组的第一个(也是唯一)对象里。

修改后的完整JOLT规则:

[
  {
    "operation": "shift",
    "spec": {
      "AssetID": "data[0].6.value",
      "AssetNumber": "data[0].7.value",
      "AssetMaterial": "data[0].8.value",
      "AssetName": "data[0].9.value",
      "CustRID": "data[0].10.value",
      "SerialNumber": "data[0].11.value",
      "Room": "data[0].12.value",
      "Datacenter": "data[0].13.value",
      "UMountingID": "data[0].14.value",
      "CabinetAssetID": "data[0].15.value",
      "CabinetName": "data[0].16.value"
    }
  },
  {
    "operation": "default",
    "spec": {
      "to": "table1"
    }
  },
  {
    "operation": "default",
    "spec": {
      "fieldsToReturn": [6, 7, 8, 9, 10, 11, 12]
    }
  }
]

转换后的输出:

{
  "data": [
    {
      "6": {
        "value": "1"
      },
      "7": {
        "value": "2"
      },
      "8": {
        "value": "Cisco MDS 9706"
      },
      "9": {
        "value": "Cisco-MDS-9706_1"
      },
      "10": {
        "value": "A001"
      },
      "11": {
        "value": "OU812"
      },
      "12": {
        "value": "ROOM5"
      },
      "13": {
        "value": "DC69"
      },
      "14": {
        "value": "86"
      },
      "15": {
        "value": "181"
      },
      "16": {
        "value": "CAB666"
      }
    }
  ],
  "to": "table1",
  "fieldsToReturn": [6, 7, 8, 9, 10, 11, 12]
}

这个修改非常直接:通过data[0]固定数组索引,所有字段都会被合并到同一个对象中,最终data数组只会保留一个包含所有键值对的元素,完全匹配你需要的预期输出。

内容的提问来源于stack exchange,提问作者Marcus O'Connor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 22:15:34