由于某种原因,我的json twitter解析器无法正常工作?
任何人都有任何想法?
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
function outputHtmlToDiv(tweet,i){
count = i + 1;
$('#wrapper #sidebar .profile').html('<img src="'+tweet.profile_image_url+'" alt="Pretty Klicks" />');
}
$(document).ready(function(){
var url = 'http://twitter.com/statuses/user_timeline/prettyklicks.json?count=1';
$.getJSON(url,function(json){
$.each(json.user,function(i,tweet){
outputHtmlToDiv(tweet,i);
});
});
});
</script>
答案 0 :(得分:2)
您有一些错误,主要是您需要在网址中&callback=?
,如下所示:
var url = 'http://twitter.com/statuses/user_timeline/prettyklicks.json?count=1&callback=?';
否则jQuery不知道发出JSONP请求(正常的XHR请求被阻止跨域,same-origin policy的补充)。你的get结构有点偏, base 对象是一个数组,整体看起来应该是这样的:
function outputHtmlToDiv(tweet, i) {
count = i + 1;
$('#wrapper #sidebar .profile').html('<img src="'+tweet.user.profile_image_url+'" alt="Pretty Klicks" />');
}
$(function(){
var url = 'http://twitter.com/statuses/user_timeline/prettyklicks.json?count=1&callback=?';
$.getJSON(url,function(json){
$.each(json,function(i,tweet){
outputHtmlToDiv(tweet,i);
});
});
});
You can test it out here,因为上面对象中的json
是一个推文数组,你需要直接遍历那个数组,json.user
将是未定义的(数组没有属性然而,名为users
),json[0].user
就是你想要的。
答案 1 :(得分:1)
在'+tweet.profile_image_url+'
试试这个:
$('#wrapper #sidebar .profile').html('<img src="'+tweet.profile_image_url+'" alt="Pretty Klicks" />');
答案 2 :(得分:0)
这是因为你在img / src之后有未公开的引用吗?而不是:
$('#wrapper #sidebar .profile').html('<img src="'+tweet.profile_image_url+' alt="Pretty Klicks" />');
尝试:
$('#wrapper #sidebar .profile').html('<img src="'+tweet.profile_image_url+'" alt="Pretty Klicks" />');
答案 3 :(得分:0)
您需要使用JSONP回调参数(请参阅the documentation)。使用jQuery,你可以使用?它会生成一个名字:
var url = 'http://twitter.com/statuses/user_timeline/prettyklicks.json?count=1&callback=?';