如何从json对象中提取字符串键和值

时间:2010-03-11 22:16:54

标签: jquery json

在我的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”}

感谢。

3 个答案:

答案 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);
});

文档位于http://underscorejs.org/#each