#ios #json #parsing
#iOS #json #синтаксический анализ
Вопрос:
{"response":[33689822,64091979,69682048,74160161]}
—
- (void)requestCompleted:(ASIHTTPRequest *)request
{
NSString *responseString = [request responseString];
NSLog(@"okRequest|| %@",responseString);
SBJSON *parser = [[SBJSON alloc] init];
// Prepare URL request to download statuses from Twitter
// Get JSON as a NSString from NSData response
NSString *json_string = [[NSString alloc] initWithString:responseString];
// parse the JSON response into an object
// Here we're using NSArray since we're parsing an array of JSON status objects
NSArray *statuses = [parser objectWithString:json_string error:nil];
// Each element in statuses is a single status
// represented as a NSDictionary
for (NSDictionary *status in statuses)
{
//all other func..
NSLog(@"%@ ", status);///This func prints only "response"
}
}
Как я могу получить массив чисел в «ответе»? (33689822,64091979,69682048,74160161)
Ответ №1:
Попробуйте это:
for (NSNumber *number in [statuses objectForKey:@"response"]) {
NSLog(@"%@", number);
}
Ответ №2:
Вы можете либо проанализировать данные JSON самостоятельно, либо, что еще лучше, использовать библиотеку, подобную TouchJSON, которая сделает это за вас.
Комментарии:
1. @Ник Уивер, похоже, ты прав. 1 вам за то, что у вас хватило терпения не указывать на прекрасное руководство. 🙂
Ответ №3:
Попробуйте использовать JSONFragmentValue напрямую.
NSString *response=[request responseString];
id usableResp = [response JSONFragmentValue];