如何使用PHP的jQuery / AJAX调用迭代JSON数组?

可能重复:
循环通过Json对象

我有一个PHP函数data.php ,它从外部服务器URL获取JSON数据,如:

  

检索到的JSON数组如下所示:

 [ { "name": "Not configured", "mac_address": "1111c11c1111", "online": "false", "rate": "Not configured" }, { "name": "Not configured", "mac_address": "0000c00c0000", "online": "false", "rate": "Not configured" } ] 

我现在正在尝试编写一个对该PHP函数的AJAX调用,遍历JSON数组,并以非JSON格式在浏览器中显示它。 我的AJAX代码如下所示:

 $.ajax({ url: 'data.php', type: 'POST', dataType: 'json', success: function(output) { $.each(output, function() { $.each(this, function(key, value){ alert(key + " --> " + value); }); }); } }); 

我的问题是代码当前显示警告框,显示数组中的各个字符,如: 0 --> [0 -->0 --> { …等等

我是如何使用json_encode()传递数据的问题; 和dataType:’json’或问题解决我如何迭代数组?

谢谢。

其他响应者错过了偷偷摸摸但仍然显而易见的一点,从PHP中轮询的资源返回的内容可能已经是有效的JSON,并且重新编码它导致浏览器仅将其解释为字符串。 在这种情况下,javascript从来没有机会。

删除PHP中的json_encode()位,然后回显返回的内容,看看是否有所改善。

我认为你的问题是在第二个问题。 尝试:

 $.each(output, function(key, value) { $.each(value, function(key, value){ alert(key + " --> " + value); }); }); 
 var jsonArray = [ { "name": "Not configured", "mac_address": "1111c11c1111", "online": "false", "rate": "Not configured" }, { "name": "Not configured", "mac_address": "0000c00c0000", "online": "false", "rate": "Not configured" } ]; $.each(jsonArray, function() { for (var key in this) { if (this.hasOwnProperty(key)) { console.log(key + " -> " + this[key]); } } }); 

看看这个

如何循环或枚举JavaScript对象?