Javascript responseText数组未正确解析
我正在使用ajax从php解析器中检索json_encode()数组 响应文本是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.
[“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