@Patrick, this code makes it very easy to trigger a CSV download from a JSON array. Originally from Stackoverflow (http://stackoverflow.com/a/4130939/317) , I mod-ed it to be easier to use as needed (without button styles to trigger it)
function JSON2CSV(objArray, blnGetLabels) {
var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
Code: Select all
var str = '';
var line = '';
if (blnGetLabels) {
var head = array[0];
if ($("#quote").is(':checked')) {
for (var index in array[0]) {
var value = index + "";
line += '"' + value.replace(/"/g, '""') + '",';
}
} else {
for (var index in array[0]) {
line += index + ',';
}
}
line = line.slice(0, -1);
str += line + '\r\n';
}
for (var i = 0; i < array.length; i++) {
var line = '';
if ($("#quote").is(':checked')) {
for (var index in array[i]) {
var value = array[i][index] + "";
line += '"' + value.replace(/"/g, '""') + '",';
}
} else {
for (var index in array[i]) {
line += array[i][index] + ',';
}
}
line = line.slice(0, -1);
str += line + '\r\n';
}
return str;
}
function DownloadCSV(objArray, blnGetLabels) {
var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
var csv = JSON2CSV(array, blnGetLabels);
window.open("data:text/csv;charset=utf-8," + escape(csv));
};