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

如何用Jolt将单个JSON对象按属性转换为对象数组?

Jolt动态转换:将对象转为含重复ID的单属性对象数组

问题背景

需要将单个JSON对象转换为数组,数组长度等于原对象属性数,每个数组元素仅包含原对象的一个属性,同时统一携带原对象的id作为repeatedId字段。

输入JSON

{
  "id": "00abc",
  "attribute1": 100,
  "attribute2": "yes",
  "attribute3": false,
  "attribute4": "up"
}

期望输出

{
  "array" : [ {
    "id" : "00abc",
    "repeatedId" : "00abc"    
  }, {
    "attribute1" : 100,
    "repeatedId" : "00abc"
  }, {
    "attribute2" : "yes",
    "repeatedId" : "00abc"
  }, {
    "attribute3" : false,
    "repeatedId" : "00abc"
  }, {
    "attribute4" : "up",
    "repeatedId" : "00abc"
  } ]
}

原Spec问题分析

原Spec中使用@2遍历所有属性,导致每个数组元素都接收了所有属性的值,最终形成重复数组。

修正后的Jolt Spec

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "@(1,&)": "array[#2].&",
        "@(2,id)": "array[#2].repeatedId"
      }
    }
  }
]

逻辑说明

  1. * 遍历原对象的每一个属性
  2. @(1,&) 获取当前遍历到的属性的键值对,映射到array数组的对应索引位置(#2表示当前属性的索引,从0开始计数)
  3. @(2,id) 向上两层获取原对象的id值,作为repeatedId字段添加到同一个数组元素中
  4. 该Spec完全动态,可适配任意数量、任意名称的属性

修正后输出

与期望输出完全一致,每个数组元素仅包含单个原属性和repeatedId,无重复数组问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 00:00:06