我正在尝试检索用户输入网址的Facebook事件的详细信息。
基本上,用户输入事件的URL,例如。 https://www.facebook.com/event.php?eid=102036779889416 然后,生成的JSON格式信息将被分配给变量并传递到适当的表单值,它只是一个自动填充功能,使我的网站上的内容更简单。
现在我已经将表单传递给文件了,我正在使用getjson
$.getJSON("getevent.php?event="+event,function(data)
但我不知道如何处理返回,因为在我一直关注的示例中,json的格式如下:
{"posts":
[
{
"title":"9lessons | Programming Blog",
"url":"http://9lessons.blogspot.com"
},
{
"title":"jQuery and Ajax Demos Pard - 3",
"url":"jquery-and-ajax-best-demos-part-3.html"
},
]
}
使用它返回时可以输出:
<script type="text/javascript">
$(function()
{
$(document).ready(function()
{
$.getJSON("data.js",function(data)
{
$.each(data.posts, function(i,data)
{
var div_data =
"<div ><a href='"+data.url+"'>"+data.title+"</a></div>";
$(div_data).appendTo("#9lessonsLinks");
});
}
);
return false;
});
});
</script>
然而,Facebook返回的JSON看起来像这样;
{
"id": "188892631122084",
"owner": {
"name": "Gerard Alonso",
"id": "742700474"
},
"name": "M.E.T.H.O.D. 11.6.2011",
"description": "Yo! \n\nOld skool hip hop and other assorted jams at the Bodega. \n\nAll day jam with barbecue by Homemade, graffiti by Montana, Nottingham's best hip hop DJs and good vibes all round.\n\n\u00a33 entry all day and night, separate \u00a35 charge for Don't Flop rap battles upstairs http://www.facebook.com/event.php?eid=165044166891331.\n\n\nDJs line-up:\n\nTHE ELEMENTZ\nSQUIGZ\nBEATMASTER BILL\nSYNIC\nROOT ONE\nILLICIT & DESCRY\nADAM P\n+ more\n\n\nDuring the day:\n\n- Dont Flop rap battles upstairs (not included on the \u00a33 ticket price)\n- Mimm store >> http://tinyurl.com/3n8qltc\n- Jamaican BBQ (Homemade)\n- Funk and sunny hip hop in the downstairs bar\n\nIn the evening:\n\n- Old skool hip hop music upstairs along with plenty of mc's getting up in the mic\n- Drinks deals TBC\n- BBQ all day and night\n\n\nAny Mc's, dj's, breakers, graffiti artist get in touch. \n\nPeace, love and hip hop.",
"start_time": "2011-06-11T14:00:00",
"end_time": "2011-06-12T03:30:00",
"location": "The Bodega Social",
"privacy": "OPEN",
"updated_time": "2011-06-05T21:45:18+0000"
}
正如你所看到的,它没有一个与我可以使用的“帖子”相当的顶级,所以我有点难过。另外我不知道如何在文件中输出它,因为我在传递url的php文件中有这个:
$url = $_GET['event'];
parse_str( parse_url( $url, PHP_URL_QUERY ) );
$id = $eid;
$url = 'https://graph.facebook.com/'.$id;
$json = file_get_contents($url,0,null,null);
$json_output = json_encode($json, false);
print_r($json_output);
无论如何,这似乎是错误的,因为在每次引用之前输出都是反斜杠
我知道这很简单,但我无法理解。我想要做的是将每个类别分配给一个变量来做一些事情,但是现在我只是决定先输出它。我发现AJAX如此复杂,因为似乎有大约10种方法可以做同样的事情。
编辑:我意识到我不需要JSONdecode,只是回显了$ json。 Firebug看到JSON生成正常但在将此添加到AJAX之后没有发生任何事情:
$.getJSON("getevent.php?event="+event,function(data)
{
var items = [];
$.each(data, function(key, val) {
items.push('<li id="' + key + '">' + val + '</li>');
});
$('<ul/>', {
'class': 'my-new-list',
html: items.join('')
}).appendTo('#arrData');
}
);
return false;
所以我甚至不知道我现在想要修复什么,因为据我所知,我已经完成了手册告诉我的内容并且JSON是正确的?
三江源
答案 0 :(得分:0)
我认为您尝试使用的JSON是一个帖子列表。第二个JSON提取看起来像是正确的(即事件对象)。