2015-03-06 3 views
1

Я хотел разобрать JSON с помощью Afnetworking но возвращается нуль хотя JSON является действительным, и работает хорошо здесь мой кодAfnetworking возвращают нулевое JSON, хотя его действительный

-(void)getData:(NSString *)serverName 
{ 
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 

    manager.responseSerializer = [AFHTTPResponseSerializer serializer]; 

    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; 
    hud.mode = MBProgressHUDModeIndeterminate; 
    hud.labelText = @"Loading"; 




    [manager POST:serverName parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { 





     [hud hide:YES]; 
     Category = [[NSMutableArray alloc]init]; 

     NSLog(@"%@",operation.responseString); 

     // 3 
     Category = [NSJSONSerialization JSONObjectWithData:responseObject options:kNilOptions error:nil]; 


     [self.myCollectionView reloadData]; 



    } failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
     NSLog(@"error %@", error); 
     [hud hide:YES]; 

     // 3 


     UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"خطأ في الاتصال" message:@"توجد مشكلة في الاتصال قم بالمحاولة مرة اخرى" delegate:self cancelButtonTitle:@"اغلاق" otherButtonTitles:nil]; 
     [alert show]; 

    }]; 


} 

но когда я отобразить массив на консоли возвращает нуль хотя, когда я отображается operation.responseString он выводит реальную JSON

[{"cat_name":"الكترونيات","cat_img":"الكترونيات.jpg"},{"cat_name":"arabiat","cat_img":"arabypic.jpg"}] 

выход responseObject является то, что

<efbbbf0d 0aefbbbf 5b7b2263 61745f6e 616d6522 3a22d8a7 d984d983 d8aad8b1 d988d986 d98ad8a7 d8aa222c 22636174 5f696d67 223a22d8 a7d984d9 83d8aad8 b1d988d9 86d98ad8 a7d8aa2e 6a706722 7d2c7b22 6361745f 6e616d65 223a2261 72616269 6174222c 22636174 5f696d67 223a2261 72616279 7069632e 6a706722 7d5d0a> 
+0

Идентификатор успеха или отказ? Любая ошибка? – Wain

+0

вызывается блок успеха, и когда я выводю этот NSLog (@ "% @", operation.responseString); он выводит, что [{"cat_name": "الكترونيات", "cat_img": "الكترونيات. Jpg"}, {"cat_name": "arabiat", "cat_img": "arabypic.jpg"}] , но когда i output массив был null –

+0

Вы проверили operation.responseString, но вы вызываете JSONObjectWithData для responseObject. Проверьте responseObject (и добавьте результат в сообщение) или просто замените его на operation.responseString. – Avt

ответ

0

Вы должны настроить сериализатор ответов менеджеров на JSON, чтобы AFN автоматически декодировал данные. Как только вы это сделали, вам не нужно использовать NSJSONSerialization, просто используйте responseObject, который будет вашим массивом.

+0

operation.responseString вернуть реальный JSON, но responseObject вернуть что

+0

Похоже необработанные данные, потому что вы используете базовый сериализатор. Попросите сериализатор JSON, что это за ошибка. – Wain

Смежные вопросы