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

如何使用JOLT将两个现有数组组合为新对象?

完善JOLT规格实现数组整合需求

首先我先明确你的输入结构:

[
  {
    "features": [
      {
        "featureId": 1,
        "feature": "feature"
      }
    ],
    "product": [
      {
        "id": 1,
        "name": "name"
      }
    ]
  }
]

根据你“将两个现有数组作为元素创建一个新对象”的需求,我分两种常见场景给出完善后的JOLT规格:


场景1:保留原结构,完整映射两个数组

如果你的需求是把features和product数组完整保留为新对象的属性(本质是正确映射原结构),可以用以下JOLT规格:

[
  {
    "operation": "shift",
    "spec": {
      "*": { // 遍历顶层数组的每个对象
        "features": {
          "*": { // 遍历features数组的每个元素
            // 直接将当前元素的所有字段映射到目标位置,比逐个字段写更简洁
            "@": "[&3].features[&1]"
            // 如果需要精确指定保留的字段,也可以用你原来的写法:
            // "featureId": "[&3].features[&1].featureId",
            // "feature": "[&3].features[&1].feature"
          }
        },
        "product": {
          "*": { // 遍历product数组的每个元素,逻辑和features完全一致
            "@": "[&3].product[&1]"
            // 对应逐个字段写法:
            // "id": "[&3].product[&1].id",
            // "name": "[&3].product[&1].name"
          }
        }
      }
    }
  }
]

关键逻辑解释:

  • [&3]:指代顶层数组的索引(嵌套层级:顶层* → features → *,向上数3层就是顶层数组的位置)
  • [&1]:指代当前数组(features/product)的元素索引,保证数组元素的顺序不会乱
  • @:表示直接引用当前元素的所有内容,省去逐个字段映射的麻烦

场景2:将两个数组的对应元素合并为新对象

如果你的需求是把features和product数组中同索引的元素合并到一个新对象里(比如创建一个包含两类信息的组合数组),可以用以下规格:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "features": {
          "*": {
            // 将features元素放到combined数组对应位置的featureDetails字段
            "@": "[&3].combined[&1].featureDetails"
          }
        },
        "product": {
          "*": {
            // 将product元素放到combined数组对应位置的productDetails字段
            "@": "[&3].combined[&1].productDetails"
          }
        }
      }
    }
  }
]

对应的输出结果:

[
  {
    "combined": [
      {
        "featureDetails": {
          "featureId": 1,
          "feature": "feature"
        },
        "productDetails": {
          "id": 1,
          "name": "name"
        }
      }
    ]
  }
]

你可以根据实际需求选择对应的方案,如果还有更具体的输出结构要求,可以随时补充说明~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:52:03