在我的jquery代码中,我发出ajax请求,服务器以JSON方式返回数据:
{"list":{
"category":"book",
"item":[
{"title":"jQuery Cookbook","author":"Tom","publisher":"Wonderland"},
{"title":"PHP Cookbook","author":"Jack London","publisher":"O'Reilly"}
]
}
}
在我的jquery代码中,我有:
$.getJSON(
"data/getFile.php",
{set:setName, list:listName},
function(json) {
var items = json.list.item;
$.each(items, function(key, value) {alert(value);}
});
事实证明,价值是一个对象,这是正确的。我的问题是我如何解析名称和价值如下:for item 1:key =“title”,value =“jQuery Cookbook”; key =“author”,value =“Tom”; ...
我需要这样做的原因是项目会动态更新,也许以后用户会添加更多的键/值属性,例如:{“isbn”:“11223344”}
感谢。
答案 0 :(得分:2)
您可以使用for循环遍历项目:
for (var key in items) {
if(items.hasOwnProperty(key)) { //Exclude inherited prototype properties
alert("Key: " + key);
alert("Value: " + items[key]);
}
}
我不确定数据的确切位置,但这是获取每对数据键/值的最简单方法。
答案 1 :(得分:1)
得到它,只需要使用双循环:
$。的getJSON( “数据/ getFile.php”, {set:setName,list:listName}, function(json){ var items = json.list.item; $ .each(items,function(i,item){
$.each(item, function(key, val) {
alert(key + ': ' + val);
});
}
});
答案 2 :(得分:0)
你也可以为JSON对象的每个键值对使用下划线lib
_.each({one : 1, two : 2, three : 3}, function(value, key ){
alert("key : "+ key+" value: "+ value);
});