-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

You can use the native JSON.parse() object type, if you're okay with it being a little newer:

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

Now you can interact with the values from the JSON as an array and still work with data as the object.

于 2013-10-29T19:57:30.133 に答える