Javascript JSON字符串操作
我有这个有效的JSON字符串,它可以有很多行。我刚刚发布了一个片段Javascript JSON字符串操作,javascript,json,Javascript,Json,我有这个有效的JSON字符串,它可以有很多行。我刚刚发布了一个片段 var jsonStr = ["{\"r1\":768,\"r2\":1,\"r3\":\"System Admin\",\"r4\":\"2013-06-08T05:51:23.000Z\",\"r5\":1,\"r6\":\"System Admin\",\"r7\":false}"] 我需要将以上内容发送到CSV。遵循这一点 CSV与r1、r2、r3一起导出。。但是我不需要钥匙r1,r3,r3。。等我只需要这些值。我也遵
var jsonStr = ["{\"r1\":768,\"r2\":1,\"r3\":\"System Admin\",\"r4\":\"2013-06-08T05:51:23.000Z\",\"r5\":1,\"r6\":\"System Admin\",\"r7\":false}"]
我需要将以上内容发送到CSV。遵循这一点
CSV与r1、r2、r3一起导出。。但是我不需要钥匙r1,r3,r3。。等我只需要这些值。我也遵循同样的例子
有什么建议吗
var jsonStr = ["{\"r1\":768,\"r2\":1,\"r3\":\"System Admin\",\"r4\":\"2013-06-08T05:51:23.000Z\",\"r5\":1,\"r6\":\"System Admin\",\"r7\":false}"]
DownloadJSON2CSV(jsonStr);
function DownloadJSON2CSV(objArray) {
var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
var str = '';
for (var i = 0; i < array.length; i++) {
var line = '';
var tmp = 0;
var nx = 1;
for (var index in array[i]) {
line += array[i][index];
if (tmp == 0) {
nx = array[0][3];
}
tmp++;
}
line.slice(0, line.Length - 1);
str += line + '\r\n';
}
window.open("data:text/csv;charset=utf-8," + escape(str))
}
var jsonStr=[“{\“r1\”:768,“r2\”:1,“r3\”:“系统管理员”,“r4\”:“2013-06-08T05:51:23.000Z\,“r5\”:1,“r6\”:“系统管理员”,“r7\”:false}]
下载JSON2CSV(jsonStr);
函数下载JSON2CSV(objArray){
var array=typeof objArray!=“object”?JSON.parse(objArray):objArray;
var-str='';
对于(var i=0;i
问题是:好的,因为您无法控制JSON数据,所以我假设您得到了一个字符串化JSON对象数组 如果是这种情况,请查看这个JSFIDLE() 我不确定您需要如何格式化输出,所以目前我在输出中用逗号分隔它们 我还剥离了小提琴中所有不必要的代码以简化它
var jsonStr = ["{\"r1\":768,\"r2\":1,\"r3\":\"System Admin\",\"r4\":\"2013-06-08T05:51:23.000Z\",\"r5\":1,\"r6\":\"System Admin\",\"r7\":false}"]
DownloadJSON2CSV(jsonStr);
function DownloadJSON2CSV(objArray)
{
var str = '';
for(var i = 0; i < objArray.length; i++)
{
var array = typeof objArray[i] != 'object' ? JSON.parse(objArray[i]) : objArray[i];
var line = '';
for (var index in array)
{
line += array[index] + ",";
}
line.slice(0,line.Length-1);
str += line + '\r\n';
}
window.open( "data:text/csv;charset=utf-8," + escape(str))
}
var jsonStr=[“{\“r1\”:768,“r2\”:1,“r3\”:“系统管理员”,“r4\”:“2013-06-08T05:51:23.000Z\,“r5\”:1,“r6\”:“系统管理员”,“r7\”:false}]
下载JSON2CSV(jsonStr);
函数下载JSON2CSV(objArray)
{
var-str='';
for(var i=0;i
希望这有帮助。您可以尝试以下方法:
var jsonStr = "[{\"r1\":768,\"r2\":1,\"r3\":\"System Admin\",\"r4\":\"2013-06-08T05:51:23.000Z\",\"r5\":1,\"r6\":\"System Admin\",\"r7\":false}]";
DownloadJSON2CSV(jsonStr);
function DownloadJSON2CSV(objArray) {
var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
var str = '';
for (var i = 0; i < array.length; i++) {
var line = '';
var tmp = 0;
var nx=1;
for (var index in array[i]) {
switch( index ) {
case "r1":
case "r2":
case "r5": line += array[i][index]; break;
case "r7": line += (array[i][index]==false) ? -1 : 0; break;
case "r3":
case "r4":
case "r6": line += '"'+array[i][index]+'"';
}
line += ",";
}
str += line + '\r\n';
}
// window.open( "data:text/csv;charset=utf-8," + escape(str))
// document.getElementById('comments').innerHTML = nx;
}
var jsonStr=“[{\'r1\':768,\'r2\':1,\'r3\':\'System Admin\',\'r4\':\'2013-06-08T05:51:23.000Z\',\'r5\':1,\'r6\':'System Admin\',\'r7\':false}];
下载JSON2CSV(jsonStr);
函数下载JSON2CSV(objArray){
var array=typeof objArray!=“object”?JSON.parse(objArray):objArray;
var-str='';
对于(var i=0;i
代码中没有对字符串进行解析。文章中的代码看起来不错。打开语句之前的最终值是什么?您需要在引号中包含括号:var jsonStr=“[{\'r1\':768,\'r2\':1,\'r3\':\'System Admin\',\'r4\':\'2013-06-08T05:51:23.000Z\',\'r5\':1,\'r6\':'System Admin\','r7\':false}”
@johnseddy:这实际上是您的解决方案@Amberlamps,我照你说的做了。表示无效的JSON字符串。