Получить ответ JSON сервера как NSDictionary - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь получить ответ сервера NSData в NSDictionary, но он возвращает следующее NSCFString.

NSError *error;
NSDictionary* jsonDic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];

И не может получить доступ к данным, используя objectForKey.Дайте мне способ получить этот ответ как NSDictionary или механизм преобразования.Невозможно получить NSJSONSerialization с kNilOptions возвратами nil.

Ответы [ 2 ]

0 голосов
/ 08 июня 2019

После некоторого использования NSJSONSerialization у меня возникло больше проблем, чем решений при разборе данных.

Я бы посоветовал вам использовать библиотеку SBJson, которую можно найти как cocoapod и которая хорошо мне подходит для многих проектов без каких-либо проблем в течение многих лет

Например [https://cocoapods.org/pods/SBJson][1]

0 голосов
/ 03 июня 2019

По этому вопросу нельзя сериализовать с NSJSONSerialization с опцией kNilOptions.

Итак, сначала нам нужно получить сериализованный JSON как NSString, а затем снова преобразовать его в NSData. Затем вы можете преобразовать его обратно в NSDictionary с помощью kNilOptions.

NSString* jsonString = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];

NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
id jsonDictionary = [NSJSONSerialization jsonData options:0 error:nil];
...