-1

从服务器我收到JSON这种格式的对象:

[ { "Id": 1, "defNo": "ME-2-17", "ReportDate": "2013-10-04T00:00:00", "Remarks": "" } ]

在循环中使用它我试图将它转换为一个数组,$.parseJSON(responseText但转换后我仍然无法使用它,因为控制台说:

Uncaught TypeError: Object #<Object> has no method 'join'

功能齐全:

function exportToCsv() {
var formInfo = $("#requestSortForm").serialize();
$.post('../../REQUEST/GetSortedRequest', formInfo, function (responseText) {

    data = $.parseJSON(responseText);
    console.log($.parse(responseText));

    var csvContent = "data:text/csv;charset=utf-8,";
    data.forEach(function (infoArray, index) {

        dataString = infoArray.join(",");
        csvContent += index < infoArray.length ? dataString + "\n" : dataString;

    });
    var encodedUri = encodeURI(csvContent);
    window.open(encodedUri);
});
}

SO这里的答案中遵循这个例子

4

1 回答 1

0

您可以使用本机JSON.parse()对象类型,如果您对它更新一点没意见:

var infoArray = [];
var data = JSON.parse(responseText, function(k, v) {
        if (k === "") return v;  infoArray.push(v); return v;
    });

现在,您可以将 JSON 中的值作为数组进行交互,并且仍然可以data作为对象使用。

于 2013-10-29T19:57:30.133 回答