.each循环通过json身体项目

时间:2014-05-05 11:49:22

标签: jquery json each

我将使用jQuery .each运算符遍历此json响应主体中的所有post元素。

{
"posts": [
    {
        "Post": {
            "post_id": "1",
            "url": "somUrl",
            "image": "",
            "body": "textbody",
            "parent_id": "0",
            "title": "title1"
        }
    },
    {
       "Post": {
            "post_id": "2",
            "url": "somUrl",
            "image": "",
            "body": "textbody",
            "parent_id": "0",
            "title": "title2"
        }
        }
    },
    {
        "Post": {
            "post_id": "3",
            "url": "somUrl",
            "image": "",
            "body": "textbody",
            "parent_id": "0",
            "title": "title3"
        }
    },
    {
        "Post": {
            "post_id": "4",
            "url": "somUrl",
            "image": "",
            "body": "textbody",
            "parent_id": "0",
            "title": "title4"
        }
    }
]}

我写了这段代码,但它无法打印标题。它不会遍历帖子项目。

如何使此代码正常工作?

data是传递给ajax的回调函数的响应变量。

$.each(data,function(key,post){console.log(post.title)});

感谢您的帮助。

4 个答案:

答案 0 :(得分:4)

您尝试访问json的方式是错误的。请从迭代json数组的角度思考。

尝试,

$.each(data.posts , function(index,val){
   console.log(val.Post.title)
});

DEMO

答案 1 :(得分:1)

数据的地方使用 data.posts

$.each(data.posts,function(key,val){
               console.log(val.post.title);
});

答案 2 :(得分:1)

我认为这会对你有所帮助

$.each(data.posts,function(index,value){console.log(value.post.title)});

答案 3 :(得分:1)

这应该可行,在fiddle上进行测试:

$.each(data.posts,function(index,item){

console.log(item.Post);

});

用于访问特定属性:

console.log(item.Post.propertyName);

例如:

 console.log(item.Post.title);