responseText 数组未正确解析
responseText array not parsing properly
我正在使用 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"];
myArray 将 return
4.wav, 2.wav, 3.wav, 6.mp3, 1.mp3, 5.wav
myArray.length 计数为 6,对吗?
但是如果我将我的 responseText 放在一个 var 中,并且像这样:
var myArray = event.target.responseText;
myArray 将 return
["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
没关系,
我找到了解决方案。
如果我使用
var myArray= JSON.parse(ajaxResponse);
return 将是
4.wav, 2.wav, 3.wav, 6.mp3, 1.mp3, 5.wav
所以我可以将它用作数组。
大声笑,我在 Whosebug 中的第一个问题,我自己回答了! :P
您必须使用 Javascript 函数 JSON.parse()
来处理给定的响应。
var a = '["4.wav","2.wav","3.wav","6.mp3","1.mp3","5.wav"]';
alert(JSON.parse(a).length);
我正在使用 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"];
myArray 将 return
4.wav, 2.wav, 3.wav, 6.mp3, 1.mp3, 5.wav
myArray.length 计数为 6,对吗?
但是如果我将我的 responseText 放在一个 var 中,并且像这样:
var myArray = event.target.responseText;
myArray 将 return
["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
没关系, 我找到了解决方案。
如果我使用
var myArray= JSON.parse(ajaxResponse);
return 将是
4.wav, 2.wav, 3.wav, 6.mp3, 1.mp3, 5.wav
所以我可以将它用作数组。
大声笑,我在 Whosebug 中的第一个问题,我自己回答了! :P
您必须使用 Javascript 函数 JSON.parse()
来处理给定的响应。
var a = '["4.wav","2.wav","3.wav","6.mp3","1.mp3","5.wav"]';
alert(JSON.parse(a).length);