How do I iterate over a JSON array using jQuery/AJAX call from PHP?
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Loop through Json object
我有一个php函数,
1 2 3 4 5 | <?php $url ="https://dev.externalserver.net/directory"; $content = file_get_contents($url); echo json_encode($content); ?> |
检索到的JSON数组如下所示:
1 2 3 4 5 6 7 8 9 10 11 | [ {"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代码如下所示:
1 2 3 4 5 6 7 8 9 10 11 |
我的问题是,代码当前显示的警告框显示数组中的单个字符,如:
我如何使用json_encode()和datatype:'json'传递数据有问题吗?或者我如何迭代数组来解决这个问题?
谢谢。
其他响应者忽略了这个秘密但仍然很明显的一点,即从PHP中被轮询的资源返回的内容可能已经是有效的JSON,并且重新编码它会导致浏览器仅仅将其解释为一个字符串。在这种情况下,JavaScript从来没有机会。
去掉php中的json_encode()位,然后回送返回的内容,看看是否没有改善。
我认为你的问题是第二个
1 2 3 4 5 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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对象?