Попытка разобрать тенденции в твиттере - PullRequest
1 голос
/ 29 ноября 2009

Я пытаюсь разобрать тренды в твиттере, но получаю сообщение об ошибке парсера в as_of. Кто-нибудь знает, почему это происходит?

РЕДАКТИРОВАТЬ:

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

NSMutableArray *tweets;
tweets = [[NSMutableArray alloc] init];
NSURL *url = [NSURL URLWithString:@"http://search.twitter.com/trends/current.json"];
trendsArray = [[NSMutableArray alloc] initWithArray:[CCJSONParser objectFromJSON:[NSString stringWithContentsOfURL:url encoding:4 error:nil]]]; 

NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];

for (int i = 0; i < [trendsArray count]; i++) {
    dict = [[NSMutableDictionary alloc] init];
    //[post setObject: [[currentArray objectAtIndex:i] objectForKey:@"query"]];
    [dict setObject:[trendsArray objectAtIndex:i] forKey:@"trends"];
    //[dict setObject:[trendsArray objectAtIndex:i] forKey:@"query"];
    //[post setObject:[trendsArray objectAtIndex:i] forKey:@"as_of"];
    [tweets addObject:dict];
    //post = nil;
}

1 Ответ

1 голос
/ 07 декабря 2009

Я не совсем уверен, в чем может быть ваша проблема, но я поиграл с Twitter API и CCJSON и получил пример кода, который, кажется, работает. Если вы вырезаете и вставляете его в метод applicationDidFinishLaunching нового проекта и включаете файлы CCJSON, он будет работать (надеюсь).

Этот код будет извлекать тренды json из твиттера, выводить значение as_of и создавать массив трендов.

// Make an array to hold our trends
NSMutableArray *trends = [[NSMutableArray alloc] initWithCapacity:10];

// Get the response from the server and parse the json
NSURL *url = [NSURL URLWithString:@"http://search.twitter.com/trends/current.json"];
NSString *responseString = [NSString stringWithContentsOfURL:url encoding:4 error:nil];
NSDictionary *trendsObject = (NSDictionary *)[CCJSONParser objectFromJSON:responseString]; 

// Output the as_of value
NSLog(@"%@", [trendsObject objectForKey:@"as_of"]);

// We also have a list of trends (by date it seems, looking at the json)
NSDictionary *trendsList = [trendsObject objectForKey:@"trends"];

// For each date in this list
for (id key in trendsList) {
    // Get the trends on this date
    NSDictionary *trendsForDate = [trendsList objectForKey:key];

    // For each trend in this date, add it to the trends array
    for (NSDictionary *trendObject in trendsForDate) {
        NSString *name = [trendObject objectForKey:@"name"];
        NSString *query = [trendObject objectForKey:@"query"]; 
        [trends addObject:[NSArray arrayWithObjects:name, query, nil]];
    }
}

// At the point, we have an array called 'trends' which contains all the trends and their queries.
// Lets see it . . .
for (NSArray *array in trends)
    NSLog(@"name: '%@' query: '%@'", [array objectAtIndex:0], [array objectAtIndex:1]);

Надеюсь, это полезно, прокомментируйте, если у вас есть какие-либо вопросы,

Sam

PS Я использовал этот сайт , чтобы визуализировать ответ JSON - это значительно облегчило просмотр происходящего - я просто вырезал и вставил в него JSON из twitter : )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...