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

如何使用JavaScript解析含嵌套对象数组的JSON文件并转换为Excel

解法思路

你遇到的是典型的一对多JSON结构转二维表场景:外层的name、subject、framework是公共字段,需要和standards数组里的每一项单独组合成一行数据。

实现代码

核心转换逻辑

// 输入原始JSON数据
const rawData = [
  {
    "name": "Kindergarten",
    "subject": "Math",
    "framework": "NC:  Standard Course of Study",
    "standards": [
      {"id": 1306687,"name": "NC.K.CC.1","short_description": "Standard 1."},
      {"id": 1306688,"name": "NC.K.CC.1.a","short_description": "Standard 2."},
      {"id": 1306689,"name": "NC.K.CC.1.b","short_description": "Standard 3."}
    ]
  }
]

// 处理转换逻辑
function flattenJsonToRows(data) {
  const result = []
  // 定义表头,和你需要的输出格式完全对应
  const headers = ["name", "subject", "framework", "standards/id", "standards/name", "standards/short_description"]
  result.push(headers)
  // 遍历外层每一项
  data.forEach(outerItem => {
    // 提取公共字段值
    const commonFields = [outerItem.name, outerItem.subject, outerItem.framework]
    // 遍历嵌套的standards数组
    outerItem.standards.forEach(standardItem => {
      // 公共字段 + 当前标准项字段 拼成一行
      const row = [
        ...commonFields,
        standardItem.id,
        standardItem.name,
        standardItem.short_description
      ]
      result.push(row)
    })
  })
  return result
}

// 调用得到二维数组,可直接用于导出Excel
const tableData = flattenJsonToRows(rawData)
console.log(tableData)

导出为Excel可识别的CSV文件

不需要引入第三方依赖,直接用原生JS就能生成Excel可以正常打开的CSV格式文件:

function exportToCsv(tableData, filename = '标准导出.csv') {
  // 拼接CSV格式内容
  const csvContent = tableData.map(row => row.join(',')).join('\n')
  // 创建下载链接触发下载
  const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' })
  const url = URL.createObjectURL(blob)
  const link = document.createElement('a')
  link.href = url
  link.setAttribute('download', filename)
  document.body.appendChild(link)
  link.click()
  document.body.removeChild(link)
}

// 调用导出方法
exportToCsv(tableData)

扩展说明

如果后续遇到嵌套层级更深、或者有多个嵌套数组的场景,只需要调整表头定义和字段提取规则即可,核心逻辑不变:先提取外层公共字段,再遍历嵌套数组,将公共字段和数组子项的字段拼接为独立行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:27:03