0

我使用Facebook的Javascript SDK來獲得的收件箱的郵件,到目前爲止,我能得到他們,這將轉化爲一個JSON對象無法JSON對象

function getMsgs() { FB.api( "/me/inbox", function (response) { if (response && !response.error) { var result = JSON.stringify(response); document.getElementById("msgs").innerHTML="<pre>"+result+"</pre>"; } } ); } 什麼就得到一個特定的值我最終得到的是這樣的:

{ "data":[ { "id":"15986833470221166", "to":{ "data":[ { "id":"7888047207869023", "name":"My Name" }, { "id":"101530783476778608", "name":"Friend Name" } ] }, "updated_time":"2015-02-08T03:09:02+0000", "unread":5, "unseen":0, "comments":{ "data":[ { "id":"159268645347021166_1421118060", "from":{ "id":"7888047207869023", "name":"My Name" }, "message":"blah blah blah", "created_time":"2015-01-13T03:01:00+0000" }, { "id":"159268645347021166_1421118060", "from":{ "id":"7888047207869023", "name":"My Name" }, "message":"blah blah blah", "created_time":"2015-01-13T03:01:16+0000" }, { "id":"159268645347021166_1421118060", "from":{ "id":"101530783476778608", "name":"Friend Name" }, "message":"blah blah blah", "created_time":"2015-01-13T03:01:23+0000" }, { "id":"159268645347021166_1421118060", "from":{ "id":"101530783476778608", "name":"Friend Name" }, "message":"blah blah blah", "created_time":"2015-01-13T03:01:30+0000" }, { "id":"159268645347021166_1421118060", "from":{ "id":"101530783476778608", "name":"Friend Name" }, "message":"blah blah blah", "created_time":"2015-02-08T03:09:02+0000" } ], "paging":{ "previous":"https://graph.facebook.com/v2.2/15986453474543021166/comments?access_token=TOKEN&limit=25&since=1423364314942&__paging_token=TOKEN&__previous=1", "next":"https://graph.facebook.com/v2.2/15986453474543021166/comments?access_token=TOKEN&limit=25&until=142111148324060&__paging_token=TOEKN" } } }

我想訪問'消息'值。我想創建一個數組來存儲這個JSON結構中的每個消息值。

+0

你做可循環數據[0] .comments.data' – qtgye 2015-02-11 03:40:16

回答

1

如果你只需要得到的消息,你可以用

if (response && !response.error) { 
     var m=null 
      , result=JSON.stringify(response) 
      , re=/"message":"([^"]+)"/g 
      , messages=[]; 
     while(m=re.exec(result)) { 
      messages.push(m[1]); 
     } 
     // messages array should now hold all the values by key "message" 
     //console.log(messages); 
    } 
1

根據您所提供的json,你可以做這樣的事情:

// loop through the comments array 
for (var i = 0 ; i < json.data[0].comments.data.length; i++) 
{ 
    var d = json.data[0].comments.data[i]; 
    // codes here. Message is d.message 

} 

SAMPLE

+0

這是有道理的,你的例子工作,但由於某種原因,它不適用於我的代碼。也許這是因爲JSON對象比我在這裏發佈的小片段大得多。 – fedejp 2015-02-11 06:49:50