문제

I'm going to traverse all post elements in this json response body using jQuery .each operator.

{
"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"
        }
    }
]}

I wrote this code but it's not able to print the titles. It doesn't loop through the post items.

What should I do to make this code work?

data is the response variable that is passed to the callback function of ajax.

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

Thanks for any help.

도움이 되었습니까?

해결책

The way that you are trying to access the json is wrong. Please think in the perspective of iterating an array of json.

Try,

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

DEMO

다른 팁

at the place of data use data.posts

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

i think this will help you

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

this should work, tested on fiddle:

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

console.log(item.Post);

});

for accessing specific property:

console.log(item.Post.propertyName);

for example:

 console.log(item.Post.title);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top