#iphone #ios #sdk #mgtwitterengine
#iPhone #iOS #sdk #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. U30ddU30fcU30eb. 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 LeU00f3n, EspaU00f1a";
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, который дает twitter, но у меня тоже ничего не получилось. URL-адрес является http://api.twitter.com/1/users/show.json?screen_name=zad0xsis , где «zad0xsis» — это имя пользователя в Twitter.
Заранее спасибо !! 😉
Комментарии:
1. Это недопустимый json, извините.
2. Тогда любой способ разобрать его из api.twitter.com/1/users/show.json?screen_name=zad0xsis ? спасибо за ваш ответ 🙂
3. О, эта ссылка возвращает действительный json. Кажется, что-то не так с
getUserInformationFor
методом.4. Я пытался воспользоваться ссылкой, но не могу заставить ее разобрать: ( Я получаю это
2011-05-07 13:15:20.351 BirdieApp[7833:40b] -JSONValue failed. Error is: Unrecognised leading character at offset 0
. Теперь я использовал это вместо GETUSERINFORMATION для:NSString *userinfo = [NSString stringWithFormat:@"http://api.twitter.com/1/users/show.json?screen_name=%@", username];
Ответ №1:
Hii. Вот хорошая ссылка на OAuth Twitter
В этом примере используется model для получения результата json в NSDictionary .Они вызвали метод getUsertimeLine . Вы можете вызвать свой собственный метод.
Ответ №2:
Мой опыт работы с Cocoa и JSON таков
- Это просто не будет работать правильно…
- или это не стоит всех проблем, чтобы разобрать это!
Возможно, вам было бы лучше использовать Twitter XML API
https://api.twitter.com/1/users/show.xml?screen_name=zad0xsis
Затем с помощью NSXMLParser для его анализа (на iPhone):http://ll.io/e17
или
NSXMLDocument (Mac):http://ll.io/ff0
Надеюсь, это поможет!
Комментарии:
1. ИМХО: синтаксический анализ XML — это ужас, особенно в Objective-C. Извините, но JSON — хороший формат, и имеющиеся библиотеки для синтаксического анализа json достаточно хороши, вам просто нужно знать, как их использовать.
2. Тогда есть какой-нибудь простой способ проанализировать JSON / XML, указанный в URL? 😉