javascript - 在javascript中的ajax调用中将字符串转换为数组

标签 javascript ajax

我正在进行 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/

相关文章:

javascript - 在knockout.js中修改值变化的其他属性

javascript - 收到 AJAX 响应时引发事件

php - 如何使用 select st 在 mysql 中同时获取值并继续执行下一个递增 id

javascript - 即使服务器返回适当的响应 header ,Firefox 也不允许 CORS 请求

javascript - 带条件语句的 ng-init

javascript - PHP (CakePHP) - 识别由 JavaScript 创建的表单元素

javascript - 计算每个循环中字符的出现次数

javascript - 为什么我的对象变量为空?

C#/.NET Webclient,等待页面加载完成

ajax 调用 - Web 服务