2013-10-29 86 views
-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回答以下从Here

+1

显然'infoArray'是一个对象,并且该对象没有连接方法。错误消息表明相当清楚。 –

+1

,因为它不是一个数组... – Ahmad

+0

如何将对象转换为数组?我已经列入了我正在遵循的例子,让自己变得清晰。请参阅编辑的答案。 – Maven

回答

0

这个例子中您可以使用本机JSON.parse()对象类型,如果你接受这个是一个小更新:

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

现在你可以互动将来自JSON的值作为数组并且仍以data作为对象。