Javascript responseText数组未正确解析

Javascript responseText数组未正确解析,javascript,php,ajax,responsetext,Javascript,Php,Ajax,Responsetext,我正在使用ajax从php解析器中检索json_encode()数组 响应文本是[“4.wav”、“2.wav”、“3.wav”、“6.mp3”、“1.mp3”、“5.wav”] 如果我将其放置在数组中,如下所示: var myArray = ["4.wav","2.wav","3.wav","6.mp3","1.mp3","5.wav"]; var myArray = event.target.responseText; myArray将返回 4.wav, 2.wav, 3.wav, 6.

我正在使用ajax从php解析器中检索json_encode()数组

响应文本是
[“4.wav”、“2.wav”、“3.wav”、“6.mp3”、“1.mp3”、“5.wav”]

如果我将其放置在数组中,如下所示:

var myArray = ["4.wav","2.wav","3.wav","6.mp3","1.mp3","5.wav"];
var myArray = event.target.responseText;
myArray将返回

4.wav, 2.wav, 3.wav, 6.mp3, 1.mp3, 5.wav 
myArray.length计数按预期为6,对吗

但是如果我把我的responseText放在一个变量中,像这样:

var myArray = ["4.wav","2.wav","3.wav","6.mp3","1.mp3","5.wav"];
var myArray = event.target.responseText;
myArray将返回

[“4.wav”、“2.wav”、“3.wav”、“6.mp3”、“1.mp3”、“5.wav”]

myArray.length计数为49

有人能解释一下这到底是怎么回事吗

下面是我如何进行ajax调用的:

    var ajax = new XMLHttpRequest();

    ajax.addEventListener("load", function(event){  
    var response = event.target.responseText;});

    ajax.open("POST", "parser.php");
    ajax.send();

提前感谢:)

因为
event.target.responseText
不是数组,而是字符串。字符串对象的长度是指字符串中的字符数。您需要对响应调用
JSON.parse
,以获得所需的正确格式

var responseText = '["4.wav","2.wav","3.wav","6.mp3","1.mp3","5.wav"]';

responseText.length //49 at this point, the length of the string

var responseArray = JSON.parse(responseText);

responseArray.length //6, because it's an array

因为
event.target.responseText
不是数组,而是字符串。字符串对象的长度是指字符串中的字符数。您需要对响应调用
JSON.parse
,以获得所需的正确格式

var responseText = '["4.wav","2.wav","3.wav","6.mp3","1.mp3","5.wav"]';

responseText.length //49 at this point, the length of the string

var responseArray = JSON.parse(responseText);

responseArray.length //6, because it's an array
没关系, 我找到了解决办法

如果我使用

var myArray=JSON.parse(ajaxResponse)

返回将是

4.wav、2.wav、3.wav、6.mp3、1.mp3、5.wav

所以我可以把它用作数组

哈哈,我在StackOverflow中的第一个问题,我回答了我的slef!:P

没关系, 我找到了解决办法

如果我使用

var myArray=JSON.parse(ajaxResponse)

返回将是

4.wav、2.wav、3.wav、6.mp3、1.mp3、5.wav

所以我可以把它用作数组


哈哈,我在StackOverflow中的第一个问题,我回答了我的slef!:P

您必须在给定响应中使用Javascript函数

JSON.parse()

var a = '["4.wav","2.wav","3.wav","6.mp3","1.mp3","5.wav"]';
alert(JSON.parse(a).length);

您必须在给定响应中使用Javascript函数
JSON.parse()

var a = '["4.wav","2.wav","3.wav","6.mp3","1.mp3","5.wav"]';
alert(JSON.parse(a).length);

尝试对响应文本使用JSON.parse尝试对响应文本使用JSON.parse