Не удается проанализировать JSON, отправленный SA_OAuthTwitterEngine/MGTwitterEngine

Я занимаюсь разработкой приложения для 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

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

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


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 ответа

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

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

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

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

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

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

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

или же

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

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

Другие вопросы по тегам