使用jQuery迭代JSON对象

6
循环中,当myJSON为空或不存在时,以下代码不起作用,它不会打印出URL。
$.each($.parseJSON(myJSON), function(key,value){
    alert(value.url);
});

针对这个JSON结构:

[{"host":"foo","url":"bar"},{"host":"foos","url":"bars"}]

编辑:$.each在循环内部,有一些实例/迭代其中myJSON为空,如果这有所不同。
2个回答

29

这对我有效。

var myJSON = '[{"host":"foo","url":"bar"},{"host":"foos","url":"bars"}]';

$.each($.parseJSON(myJSON), function(key,value){
    alert(value.url);
});

9
var data = [{"host":"foo","url":"bar"},{"host":"foos","url":"bars"}]

$.each(data, function(i, item) {
    alert(data[i].host);
});​

与url相同。

即使我在myJSON上使用了JSON.stringify? - el_pup_le
你是通过服务器端代码发送JSON还是仅通过客户端发送? - JN_newbie
myJSON 正在准备发送到服务器。 - el_pup_le
你是否在服务器端设置了MIME类型?例如response.setContentType("application/json")。 - JN_newbie
1
无论如何,我已经加了一个条件,只有在myJSON不为空时才执行$.each,现在它可以正常工作了。 - el_pup_le

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接