Json to CSV

JavaScript

function json2csv(objArray, headers, showHeaders) {

    if( typeof headers == "boolean" ){
         showHeaders = headers;
        headers = null;
    }
    
    var itens = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
    
    //separate fields 
    var fields = {};
    
    if( !headers ){
        for(var i = 0; i < itens.length; i++){         
            for(var prop in itens[i]){             
                if( !fields[prop] ){                 
                    fields[prop] = [];                    
                }                
            }            
        }
    }else{
        headers.forEach(function(header){ fields[header] = []; });
    }
    
    
    //getting data
    
    for(var i = 0; i < itens.length; i++){        
        for(var prop in fields){            
            if( typeof itens[i][prop] != "undefined" ){
                fields[prop].push( itens[i][prop] );
            }else{
                fields[prop].push( "" );
            }            
        }        
    }
    
    //make the csv
    
    var csvLines = [];

    if( showHeaders ){
     
        var lineFields = [];
        
        for(var prop in fields){            
            lineFields.push(  prop );                        
        }
        
        var line = lineFields.join(", ");
        csvLines.push(line);        
        
    }
    
    for(var i = 0; i < itens.length; i++){
        
        var lineFields = [];
        
        for(var prop in fields){            
            lineFields.push(  fields[prop][i] );                        
        }
        
        var line = lineFields.join(", ");
        csvLines.push(line);        
    }
       
    var csvStr = "sep=,\n" + csvLines.join("\n");    
    
    return csvStr;
}

function csvStr2file(csvStr){

    var base64 = btoa( csvStr );
    return "data:text/csv;base64," + base64;

}



var data =...