Я пытаюсь десериализовать JSON, поступающий с сервера, с помощью NSJsonSerialization. Сервер возвращает изображение png, преобразованное в строку. Вот мой код:
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString]];
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
NSError *deserializationError;
id jsonObject = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves error:&deserializationError];
if (deserializationError) {
NSLog(@"JSON deserialization error: %@", deserializationError.localizedDescription);
return;
}
} ];
Вот что я получаю от сервера:
{"photo":"�PNG\r\n\u001A\n\u0000\u0000\u0000\rIHDR\u0000\u0000\u0000:\u0000\u0000\u0000:\b\u0002\u0000\u0000\u0000n��\u007F\u0000\u0000\u001FrIDATx�}z\u0005W[y��|��..."}
Но у меня есть ошибка при разборе JSON: «Ошибка десериализации JSON: операция не может быть завершена. (Ошибка какао 3840.)». Я думаю, что проблема в формате JSON. Но ребята, которые пишут на стороне сервера, говорят, что могут успешно десериализовать этот объект. Любые предложения, как справиться с этим JSON?
{"photo": "http://<host>/<path>/<image>.png" }
. Это сократит размер каждого сообщения веб-службы и позволит клиенту кэшировать изображение. - person Jeffery Thomas   schedule 16.09.2013