无法获取 JSON 对象的特定值
Unable to get a specific value on a JSON object
我正在使用 Facebook Javascript SDK 获取收件箱消息,到目前为止我能够获取它们并将其转换为 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"
}
}
}
我想访问 'message' 值。我想创建一个数组来存储此 JSON 结构中的每个消息值。
根据您提供的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
}
如果只需要获取消息,可以用
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);
}
我正在使用 Facebook Javascript SDK 获取收件箱消息,到目前为止我能够获取它们并将其转换为 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"
}
}
}
我想访问 'message' 值。我想创建一个数组来存储此 JSON 结构中的每个消息值。
根据您提供的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
}
如果只需要获取消息,可以用
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);
}