首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在JavaScript中将JSON对象转换为CSV格式

在JavaScript中将JSON对象转换为CSV格式
EN

Stack Overflow用户
提问于 2012-06-29 14:28:52
回答 10查看 86.5K关注 0票数 49

我正在尝试将JavaScript对象集转换为CSV格式

如果您将我的Javascript对象放入在线JSON解析器https://jsonformatter.org/json-parser中,就可以了解它的概念

这就是我试着解决的方法。但是它失败了..http://jsfiddle.net/fHQzC/11/

我尝试将与值"term“和相应标题对应的整个值转换为CSV格式。

的预期输出如下

代码语言:javascript
复制
Time,Dec 9, 2012 
News,Germany,election, Egypt,Revolution, Japan, Earthquake
Person,Obama, Beckham
Title,Pearce Snubs Beckham                                
Time,Dec 5, Birthday
Person, Lebron James
News,Italy,Euro 2012 Final
Title-Heats National Champions

有没有可能在excel表格中下载csv文件,我在Stackoverflow中找到的文件对我来说并不是很有用……

EN

回答 10

Stack Overflow用户

发布于 2012-06-29 14:34:02

您可以尝试使用

代码语言:javascript
复制
$(document).ready(function () {

        // Create Object
        var items = [
              { name: "Item 1", color: "Green", size: "X-Large" },
              { name: "Item 2", color: "Green", size: "X-Large" },
              { name: "Item 3", color: "Green", size: "X-Large" }];

        // Convert Object to JSON
        var jsonObject = JSON.stringify(items);

        // Display JSON
        $('#json').text(jsonObject);

        // Convert JSON to CSV & Display CSV
        $('#csv').text(ConvertToCSV(jsonObject));
    });

和一个函数ConvertToCSV

代码语言:javascript
复制
// JSON to CSV Converter
        function ConvertToCSV(objArray) {
            var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
            var str = '';

            for (var i = 0; i < array.length; i++) {
                var line = '';
                for (var index in array[i]) {
                    if (line != '') line += ','

                    line += array[i][index];
                }

                str += line + '\r\n';
            }

            return str;
        }

Source

票数 29
EN

Stack Overflow用户

发布于 2017-10-26 15:32:26

以下是我的解决方案

代码语言:javascript
复制
function arrayToCSV(objArray) {
     const array = typeof objArray !== 'object' ? JSON.parse(objArray) : objArray;
     let str = `${Object.keys(array[0]).map(value => `"${value}"`).join(",")}` + '\r\n';

     return array.reduce((str, next) => {
         str += `${Object.values(next).map(value => `"${value}"`).join(",")}` + '\r\n';
         return str;
        }, str);
 }

示例:

代码语言:javascript
复制
let arr = [{name: "Essa", age: 25}];
console.log(arrayToCSV(arr));
票数 24
EN

Stack Overflow用户

发布于 2019-11-08 23:34:44

可能是更优雅和最简单的解决方案

代码语言:javascript
复制
function convertToCSV(arr) {
  const array = [Object.keys(arr[0])].concat(arr)

  return array.map(it => {
    return Object.values(it).toString()
  }).join('\n')
}


console.log(
  convertToCSV(
    [
      {
        id: 1,
        name: 'Foo',
        timestamp: new Date()
      },
      {
        id: 2,
        name: 'Bar',
        timestamp: new Date()
      },
      {
        id: 3,
        name: 'Baz',
        timestamp: new Date()
      }
    ]
  )
)

票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11257062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档