Не удается проанализировать JSON, отправленный SA_OAuthTwitterEngine / MGTwitterEngine - PullRequest
0 голосов
/ 07 мая 2011

Я занимаюсь разработкой приложения для Twitter, но из-за того, что предполагается информация о зарегистрированном пользователе, я не могу проанализировать JSON, выданный [_engine getUserInformationFor:username];. Я использую SBJSON и сообщает мне об этом, когда пытается разобрать его:

2011-05-07 12:29:45.553 BirdieApp[7122:40b] -JSONValue failed. Error is: Unrecognised leading character at offset 0

Это код, который я использую:

<code>NSLog(@"loggedapi");
NSString *username = [_engine username];
NSString *userinfo = [_engine getUserInformationFor:username];<br>
NSLog(@"user: %@%@", username, userinfo);
NSArray *results = [userinfo JSONValue];
NSDictionary *first = [results objectAtIndex:0];
NSLog(@"screen name = %@", [first objectForKey:@"description"]);
Вывод, который [_engine getUserInformationFor:username]; дает мне:

<code>
2011-05-07 12:29:46.281 BirdieApp[7122:40b] User Info Received: (
        {
        "contributors_enabled" = false;
        "created_at" = "Fri Sep 17 20:40:15 +0000 2010";
        "default_profile" = true;
        "default_profile_image" = false;
        description = "iPhone developer and Photoshop designer. \U30dd\U30fc\U30eb. I developed a web browser, it's called zad0xNET browser, search it in Cydia. Ofcourse this is a fake account!";
        "favourites_count" = 0;
        "follow_request_sent" = false;
        "followers_count" = 4;
        following = 0;
        "friends_count" = 1;
        "geo_enabled" = true;
        id = 191964939;
        "is_translator" = false;
        lang = es;
        "listed_count" = 0;
        location = "Castilla y Le\U00f3n, Espa\U00f1a";
        name = zad0xLOL;
        notifications = false;
        "profile_background_color" = C0DEED;
        "profile_background_image_url" = "http://a3.twimg.com/a/1304019356/images/themes/theme1/bg.png";
        "profile_background_tile" = false;
        "profile_image_url" = "http://a0.twimg.com/profile_images/1190671091/ProfilePhoto_normal.png";
        "profile_link_color" = 0084B4;
        "profile_sidebar_border_color" = C0DEED;
        "profile_sidebar_fill_color" = DDEEF6;
        "profile_text_color" = 333333;
        "profile_use_background_image" = true;
        protected = 0;
        "screen_name" = zad0xs1s;
        "show_all_inline_media" = true;
        "source_api_request_type" = 12;
        status =         {
            contributors = "";
            coordinates = "";
            "created_at" = "Sat May 07 07:42:18 +0000 2011";
            favorited = false;
            geo = "";
            id = 66769811828514816;
            "in_reply_to_screen_name" = zad0xs1s;
            "in_reply_to_status_id" = "";
            "in_reply_to_user_id" = 191964939;
            place = "";
            "retweet_count" = 0;
            retweeted = false;
            source = "BirdieApp";
            "source_api_request_type" = 12;
            text = "@zad0xs1s sdjdjdd";
            truncated = 0;
        };
        "statuses_count" = 16;
        "time_zone" = Madrid;
        url = "http://www.pabloxweb.es";
        "utc_offset" = 3600;
        verified = false;
    }

Я думаю, что это JSON, но не уверен. Я также пытался с помощью URL-адреса, который дает твиттер, но тоже не работал. URL-адрес http://api.twitter.com/1/users/show.json?screen_name=zad0xsis, где «zad0xsis» - это имя пользователя Twitter.

Спасибо заранее !! ;)

Ответы [ 2 ]

1 голос
/ 07 мая 2011

Hii. Вот хорошая ссылка OAuth Twitter

В этом примере используется модель для получения результата json в NSDictionary. Они вызвали метод getUsertimeLine. Вы можете вызвать свой собственный метод.

0 голосов
/ 07 мая 2011

Мой опыт работы с Cocoa & JSON

  • Это просто не будет работать правильно ...
  • или не стоит всех разбирать его!

Возможно, вам лучше использовать API XML Twitter

https://api.twitter.com/1/users/show.xml?screen_name=zad0xsis

Затем с помощью NSXMLParser для его анализа (на iPhone): http://ll.io/e17

или

NSXMLDocument (Mac): http://ll.io/ff0

Надеюсь, это поможет!

...