在应用程序中协助JSON转储

时间:2013-06-16 11:17:17

标签: jquery ruby json twitter sinatra

我想知道是否有人可以帮助解释以下场景中发生的事情。我试图使用新的twitter api v.1.1获取我的所有推文。我遇到了this博客文章,展示了如何使用sinatra。所以我已经设置了这个并在localhost:9393 / feed

获得我的推文的JSON转储
get '/feed' do
 jsonp @@twitter_client.user_timeline('richl14').map(&:attrs)
end

我的第一个问题是@@正在做什么,第二个问题是如何才能让我的索引显示在我的索引页面上...使用jQuery?如果有人可以提供一个可以帮助我很多的简单例子

JSON结构

 [
{
"created_at": "Thu Jun 13 10:56:45 +0000 2013",
"id": 345132629995184128,
"id_str": "345132629995184128",
"text": "@phoenix_touch You guys need any new players? Looking to pop down next week.",
"source": "web",
"truncated": false,
"in_reply_to_status_id": null,
"in_reply_to_status_id_str": null,
"in_reply_to_user_id": 576324146,
"in_reply_to_user_id_str": "576324146",
"in_reply_to_screen_name": "phoenix_touch",
"user": {
  "id": 383286861,
  "id_str": "383286861",
  "name": "Richard Lewis",
  "screen_name": "richl14",
  "location": "United kingdom",
  "description": "#RubyonRails #webdev #softwaretesting #Newport #Wales",
  "url": null,
  "entities": {
    "description": {
      "urls": [

      ]
    }
  },

1 个答案:

答案 0 :(得分:1)

前缀为@@的变量是类变量。这是一个在整个Ruby类上设置的变量,而不是在单个实例(@前缀)或本地(无前缀)上设置。

要在jQuery中访问feed,请尝试以下方法:

jQuery(function($) {
    var $container = $('#container');

    $.get('/feed', function(data) {
        $container.empty();
        $.each(data.tweets, function(_, tweet) {
            var $tweet = $(document.createElement('div'));
            $tweet.text(tweet.contents);
            $container.append($tweet);
        });
    }, 'json');
});

当Feed看起来像这样:

{
    "tweets": [
        { "contents": "Hello, World!", "username": "albert" },
        { "contents": "Too many twits might make a twat.",
          "username": "DavidCameron" }
    ]
}

您必须更改为代码以适应实际的JSON结构,但这是一个开始。