我正在进行 ajax 调用并从数组中获取结果,该结果类似于 result = [one, Two, Three];
我需要将其转换为数组并迭代它。由于我的字符串在值数组周围没有引号,因此无法正确读取。
这是我的代码,如果可以的话请告诉我正确的方法。谢谢。
xmlhttp.open("POST","SearchServlet", true);
xmlhttp.onreadystatechange =
function(){
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
resultData = xmlhttp.responseText;
// resultData = [one, two, three];
// need to make valid array to iterate it
for (var i = 0; i < resultData.length; i++) {
console.log(resultData[i]);
}
}
};
最佳答案
“用户”您好,欢迎来到 SO。感谢您提供代码示例和格式良好的问题:)
<小时/>由于 HTTP 请求使用字符串(它们不发送数组),因此发送响应的最佳方式是采用 JSON 格式。然后,您可以轻松地将 JSON 字符串解析为数组。
http://www.copterlabs.com/blog/json-what-it-is-how-it-works-how-to-use-it/
JSON 是一种非常易于使用(通常)的方式来发送字符串并将它们转储到数组中,反之亦然。
有ways to do it in Java (我认为这是服务器端代码的语言)和 PHP(很多人也使用它)以及所有其他语言。
出于某种原因,我记得 Java 比应有的更难使用,但希望我是错的。无论哪种方式,学习起来都不会太难,并且肯定会将您的代码能力提升到一个新的水平。
<小时/>使用原始字符串的一种 hack-y、不正确、丑陋的方法是:
// Remove first and last bracket
var data = resultData.substr(1, resultData.length - 2);
// Split the array
data = data.split(", ");
...但请不要这样做,这仅用于教育目的(有被否决的风险)。我还没有测试过,但你明白了。
同样,最好的方法是更改您的设计以在各处使用 JSON。
关于javascript - 在javascript中的ajax调用中将字符串转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16661495/