2016-06-10 74 views
2

我有一個我正在使用的包含attributes的一個實例和posts中的許多對象的JSON Feed。使用javascript處理JSON數據和JSON對象數組使用javascript

我有一個JavaScript算法,我正在處理JSON數據,我得到的attributes值罰款(他們作爲設置),但我無法正確處理posts

JSON響應

[ 
    { 
    "attributes":{ 
    "dfp_pos":"3", 
    "dfp_shortcode":"[dfp_ads id=1383]", 
    "wildcard_pos":"5", 
    "wildcard_shortcode":"[widget id=\"wp_widget-46\"]", 
    "twitter_id":"@ScreenName", 
    "twitter_pos":"8", 
    "facebook_id":"screenName", 
    "facebook_pos":"10" 
    }, 
    "posts":[ 
    { 
     "id":3945, 
     "pub_date":"2016-05-30 00:00:00", 
     "title":"Post title 1", 
     "excerpt":"" 
    }, 
    { 
     "id":3574, 
     "pub_date":"2016-05-12 00:00:00", 
     "title":"Post Title 2", 
     "excerpt":"" 
    }, 
    { 
     "id":3048, 
     "pub_date":"2016-05-07 00:00:00", 
     "title":"Post Title 3", 
     "excerpt":"" 
    } 
    ] 
] 

的Javascript

var dfp_pos = feeds[0].attributes.dfp_pos; 
var dfp_shortcode = feeds[0].attributes.dfp_shortcode; 
var wildcard_pos = feeds[0].attributes.wildcard_pos; 
var wildcard_shortcode = feeds[0].attributes.wildcard_shortcode; 
var twitter_id = feeds[0].attributes.twitter_id; 
var twitter_pos = feeds[0].attributes.twitter_pos; 
var facebook_id = feeds[0].attributes.facebook_id; 
var facebook_pos = feeds[0].attributes.facebook_pos; 

jQuery.each(feeds.posts, function(i, post) { 
    var id = post.id; 
    var pub_date = post.pub_date; 
    var title = post.title; 
    var excerpt = post.excerpt; 

    console.log(id); 
    console.log(pub_date); 
    console.log(title); 
    console.log(excerpt); 
}); 

each循環似乎並不通過JSON數據拉?

+1

'飼料[0] .posts'? –

回答

2

你忘了一層:

data = [ 
    ^{ 
     |^"attributes":{ 
     | | "posts":[ 
     | | ^
     1 2 3 

給你:

data[0].posts 
^ ^^
1 2 3 
0

你必須通過飼料遍歷[0]

var dfp_pos = feeds[0].attributes.dfp_pos; 
var dfp_shortcode = feeds[0].attributes.dfp_shortcode; 
var wildcard_pos = feeds[0].attributes.wildcard_pos; 
var wildcard_shortcode = feeds[0].attributes.wildcard_shortcode; 
var twitter_id = feeds[0].attributes.twitter_id; 
var twitter_pos = feeds[0].attributes.twitter_pos; 
var facebook_id = feeds[0].attributes.facebook_id; 
var facebook_pos = feeds[0].attributes.facebook_pos; 

jQuery.each(feeds[0].posts, function(i, post) { 
    var id = post.id; 
    var pub_date = post.pub_date; 
    var title = post.title; 
    var excerpt = post.excerpt; 

    console.log(id); 
    console.log(pub_date); 
    console.log(title); 
    console.log(excerpt); 
});