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

JavaScript中将JSON对象转换为基于索引的JSON数组的实现方法

JSON结构转换实现方案

实现逻辑

  • 提取原对象中所有索引值,以任意字段的数字键作为索引集合(需保证所有字段的索引是对齐的)
  • 遍历每个索引,依次取出所有字段对应索引的取值,拼接为新的子对象存入结果中

代码实现

以下为JavaScript版本的实现代码,可直接运行得到你需要的输出结构:

// 原JSON解析后的对象,如果你拿到的是JSON字符串,先用JSON.parse()转换为JS对象
const originalData = {
  "name":{
    "0":"mike",
    "1":"george",
    "2":"Andrew"
  },
  "category":{
    "0":"A",
    "1":"B",
    "2":"C"
  }
}

const result = {}
// 提取所有索引
const indexes = Object.keys(originalData.name)
// 提取所有字段名,兼容后续新增字段的场景,无需硬编码字段
const fields = Object.keys(originalData)

indexes.forEach(idx => {
  result[idx] = {}
  fields.forEach(field => {
    result[idx][field] = originalData[field][idx]
  })
})

// 如需转换为JSON字符串输出,调用以下方法
const resultJsonStr = JSON.stringify(result, null, 2)
console.log(resultJsonStr)

补充说明

你提到需要JSON数组格式,如果不需要以数字为键的对象,只需将结果初始化为数组即可,修改方法如下:

// 初始化结果为数组
const result = []
indexes.forEach(idx => {
  const item = {}
  fields.forEach(field => {
    item[field] = originalData[field][idx]
  })
  // 往数组中添加子项
  result.push(item)
})

输出的数组格式为:

[
  {"name":"mike","category":"A"},
  {"name":"george","category":"B"},
  {"name":"Andrew","category":"C"}
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:06:04