/ / NSJSONSerialization nie zwraca danych, ale pokazuje dane w przeglądarce json - iphone, ios, cel-c, nsdata, nsjsonserialization

NSJSONSerialization nie zwraca danych, ale pokazuje dane w przeglądarce json - iphone, ios, cel-c, nsdata, nsjsonserialization

NSJSONSerialization zwraca null, gdy próbuję zaimplementować konkretapi z serwera, ale inne aplikacje z serwera działają dobrze, gdy wypróbowałem api w sieci, zwraca dane typu json, i sprawdziłem to również w przeglądarce json i działało dobrze, NSData również zwraca niektóre dane, czy ktoś może mi pomóc przejść przez to?

NSString *urlString = @"url";
NSURL *url = [NSURL URLWithString:urlString];
NSError *error = nil;
NSData *data = [NSData dataWithContentsOfURL:url];
_dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];

if(error != nil){

NSLog(@"JSON Error: %@", error);
return;
}

Próbowałem powyższego pisemnego kodu.

Odpowiedzi:

2 dla odpowiedzi № 1

Problem jest Sekwencje ewakuacyjne w twoim adresie URL i nie uciekniesz im. Musisz poprawnie uciec z tych sekwencji.

NSString *urlString = @"url";
NSString *encodedString = [urlString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:encodedString];
  1. Spojrzeć na Dokumentacja.
  2. Sprawdź również Sekwencje ewakuacyjne.

Spróbuj tego :

NSString *urlString = @"url";
NSURL *myUrl = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

1 dla odpowiedzi nr 2

Zrobić NSURLConnection i poproś o JSON z NSURLRequest ponieważ nie sądzę, że "json" jest rzeczywistym plikiem, który ma zawartość, więc możesz go użyć dataWithContentsOfURL: