Я использую NSURLSession
для получения JSON от API, написанного на PHP, который извлекает из базы данных MYSQL.
Для одного запроса из определенной таблицы MYSQL телефон не может прочитать JSON, созданный API, даже если он выглядит хорошо в Postman и браузере. Фактически, я настроил другую таблицу и запрос для получения точно такого же JSON, и телефон может прочитать его без каких-либо проблем. Единственное, о чем я могу думать, это то, что в JSON есть невидимые символы из таблицы задач и запросов, которые отбрасывают вещи. Я сравнил заголовки запросов из двух таблиц в Почтальоне и они совпадают.
Известно ли, что у NSURLSession есть проблемы со скрытыми символами и т.п.?
Вот как выглядит JSON в виде почтальона:
{
"comment": [
{
"response": "you haven't been paying attention"
}
]
}
Вот что показывает браузер:
"comment":[{"response":"you haven't been paying attention"}]}
Вот что показывает консоль Xcode:
comment = "0(NSNull)"
Вот код Objective-C:
NSURL *dataUrl = [NSURL URLWithString:surl];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *data =[session dataTaskWithURL:dataUrl completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSData *jsonFeed = data;
NSLog(@"jsonFeed is%@",jsonFeed);
if (data != nil) {
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:jsonFeed
options:kNilOptions
error:&error];
NSLog(@"json in async is:%@",json);
}
}];
[data resume];