Строка синтаксического анализа JSON iOS

#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];