【问题标题】:how to convert json/array from ajax responseText in to javascript array?如何将 ajax responseText 中的 json/array 转换为 javascript 数组?
【发布时间】:2012-02-22 21:25:24
【问题描述】:

我在代码中使用了 ajax,它运行良好,并给了我想要的 json 或数组作为输出。 我使用的代码是,

xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","http://map_ajax_control.php",false);
xmlhttp.send();

var test = xmlhttp.responseText;
alert(test);

这个测试变量给了我 json/array。

我想获取我在 JavaScript 数组的测试变量中收到的数据。

问题是,如何解码 javascript 数组中的 json 数据? 我已将代码用作,

var output = new Array();  
output = json_decode(xmlhttp.responseText);

但是这段代码没有给我任何输出。
我该怎么做这两件事?

【问题讨论】:

  • 如果只需要一个 json ajax 处理程序的逻辑,那么用整个 jQuery 库来衡量一个 Web 应用程序将是矫枉过正的

标签: javascript ajax json


【解决方案1】:

大多数浏览器都支持JSON.parse()。它的用法很简单:

obj = JSON.parse(xmlhttp.responseText); alert(obj.length);

对于不支持的浏览器,您可以使用json2.js 实现它。

【讨论】:

  • 我也用过这个。但它不起作用。它没有给我任何输出
【解决方案2】:

试试这个:

var arr = xmlhttp.responseText.Split(',');

如果它不能解决您的问题,那么在您的 php 代码中,使用简单的 json_encode(your array);,在 javascript 上,使用 myData= eval("(" + xmlHttp.responseText + ")");

我建议你遵循这种方法:

在服务器上使用PHP binding for JSON 对要发送的数据进行编码,并使用Javascript library for JSON 对其进行解码。 如:

var myObject = eval('(' + myJSONtext + ')');

var myObject = JSON.parse(myJSONtext, reviver);

注意:在您的解决方案中包含 json2 javascript 文件..

Problem with storing values in Array from php to AJAX

【讨论】:

  • 绝对!我得到了一个 responseText 对象而不是一个简单的类型。使用这种方法(并且对对象有一点了解),我可以提取字段 d,这是我在这种情况下关心的布尔值。
  • WTH,请不要使用eval选项解码json,这是一个公然的xss漏洞
【解决方案3】:

json 只不过是 javascript 对象表示法。 您只需要按照 Sudhir 的建议对其进行解析。 你也可以使用 jQuery.parseJSON。

而要做 ajax,我强烈建议你使用一些库,最好是 jQuery。

http://api.jquery.com/jQuery.ajax/

【讨论】:

    猜你喜欢
    • 2014-06-11
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    • 2012-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多