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

JavaScript中嵌套Rows的JSON转CSV遇异常求助

JSON转CSV异常解决方法

问题根源

你之前的错误有两个核心原因:

  • 解码base64后得到的是字符串格式的JSON,直接遍历这个字符串会把它拆成单个字符,导致CSV每行仅显示单个字符。
  • 未正确提取嵌套在Rows字段下的实际数据,而是直接处理了整个JSON结构。

解决步骤与代码示例

  1. 解码并转换为JSON对象
    先把base64解码后的字符串转成可操作的JSON对象,再提取Rows数组:

    // 解码base64并转为JSON对象
    const jsonObj = JSON.parse(atob(base_64_string));
    // 取出嵌套的Rows数据
    const targetData = jsonObj.Rows;
    
  2. 编写转换函数
    针对Rows数组里的结构化数据,生成标准CSV:

    function jsonToCsv(data) {
      if (!data || data.length === 0) return '';
      // 获取表头(取第一条数据的所有键)
      const headers = Object.keys(data[0]);
      // 处理每行数据,兼容含逗号、引号的内容
      const csvRows = data.map(row => {
        return headers.map(header => {
          let val = row[header] ?? '';
          // 若内容包含逗号或双引号,用双引号包裹并转义内部引号
          if (typeof val === 'string' && (val.includes(',') || val.includes('"'))) {
            val = `"${val.replace(/"/g, '""')}"`;
          }
          return val;
        }).join(',');
      });
      // 拼接表头与行数据
      return [headers.join(','), ...csvRows].join('\n');
    }
    
    // 生成CSV内容
    const finalCsv = jsonToCsv(targetData);
    

验证说明

  • 转换后的CSV会以Rows数组内数据的键作为表头,每行对应一条Rows里的数据。
  • 函数兼容包含逗号、双引号的字段内容,避免CSV格式错乱。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 16:24:30