Javascript /将json转换为csv [英] Javascript / convert json to csv

查看:235
本文介绍了Javascript /将json转换为csv的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何将json对象数组转换为csv?

How to convert an array of json object to csv ?

ex

[{ name: "Item 1", color: "Green", size: "X-Large" },
 { name: "Item 2", color: "Green", size: "X-Large" },
 { name: "Item 3", color: "Green", size: "X-Large" }];

name;color;size
Item 1;Green;X-Large
Item 2;Green;X-Large
Item 3;Green;X-Large


推荐答案

JSFiddle中的示例: http://jsfiddle.net/FLR4v/

Example in JSFiddle : http://jsfiddle.net/FLR4v/

依赖关系:

  • Underscorejs http://underscorejs.org/underscore-min.js
  • Momentjs http://cdnjs.cloudflare.com/ajax/libs/moment.js/2.0.0/moment.min.js

函数

 /**
 * Return a CSV string from an array of json object
 *
 * @method JSONtoCSV
 * @param {Object} jsonArray an array of json object
 * @param {String} [delimiter=;] delimiter
 * @param {String} [dateFormat=ISO] dateFormat if a date is detected
 * @return {String} Returns the CSV string
**/
function JSONtoCSV(jsonArray, delimiter, dateFormat){
    dateFormat = dateFormat || 'YYYY-MM-DDTHH:mm:ss Z'; // ISO
    delimiter = delimiter || ';' ;

    var body = '';
    // En tete
    var keys = _.map(jsonArray[0], function(num, key){ return key; });
    body += keys.join(delimiter) + '\r\n';
    // Data
    for(var i=0; i<jsonArray.length; i++){
        var item = jsonArray[i];
        for(var j=0; j<keys.length; j++){
            var obj = item[keys[j]] ;
            if (_.isDate(obj)) {                
                body += moment(obj).format(dateFormat) ;
            } else {
                body += obj ;
            }

            if (j < keys.length-1) { 
                body += delimiter; 
            }
        }
        body += '\r\n';
    }

    return body;
}

这篇关于Javascript /将json转换为csv的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆