将JSON转换为JavaScript数组

时间:2013-06-16 13:25:04

标签: javascript json

我收到服务器的回复:

{'data':['29/10/2009','13/04/2009','19/10/2009','07/04/2009','20/05/2009','27/02/2010',
'20/04/2009','16/06/2009','15/12/2009','22/06/2009','21/09/2009','28/07/2009',
'19/01/2009','14/05/2010','30/03/2009','06/04/2009','21/01/2010','10/03/2009',
'17/09/2009','09/04/2009','27/10/2009'.....]}

我想获取这个日期数组并将其放入JS数组中:

                success: function(response){    
                intObj = response.responseText;
                for(var i in intObj) {
                    console.log(i);
                    if(intObj.hasOwnProperty(i) /*&& !isNaN(+i)*/) {

                        dateArray[+i] = intObj[i];
                    }
                }
            }

但是得到我的数组中的结果:

["\r", "\n", "\r", "\n", "\r", "\n", "\r", "\n", "\r", "\n", "\r", "\n", "\r", "\n",
"\r", "\n", "\r", "\n", "\r", "\n", "{", "'", "d", "a", "t", "a", "'", ":", "[", "'", 
"2", "9", "/", "1", "0", "/", "2", "0", "0", "9", "'", ",", "'", "1", "3", "/", "0", 
"4", "/", "2", "0", "0", "9", "'", ",", "'", "1", "9", "/", "1", "0", "/", "2", "0", 
"0", "9", "'", ",", "'", "0", "7", "/", "0", "4", "/", "2", "0", "0", "9"...]

如何仅将数据放入数组?像这样'29/10/2009','13/04/2009','19/10/2009','07/04/2009']

5 个答案:

答案 0 :(得分:3)

您需要将字符串解析为JSON:

var result = JSON.parse(response.responseText);

然后你可以直接获取数组:

var array = result.data;

答案 1 :(得分:2)

您必须使用JSON.parse()。我相信你需要使用responseText属性,它将响应作为字符串返回。

var jsonObject = JSON.parse(response.responseText);
var dataArray = jsonObject.data;

答案 2 :(得分:1)

响应是一个对象

{{2h2>响应是一个字符串

将其转换为对象:

var array = response.data;

答案 3 :(得分:0)

您必须解析结果。

var arrayOfDates = JSON.parse(response.responseText).data;

答案 4 :(得分:-1)

尝试使用

var intObj = eval("(" + response + ");");
for (var i in intObj.data) {
        console.log(i);
        if(intObj.hasOwnProperty(i) /*&& !isNaN(+i)*/) {
             dateArray[+i] = intObj[i];
        }
}