Как преобразовать сериализованные данные JSON в NSDictionary
Я использовал этот метод,
NSDictionary *jsonObject=[NSJSONSerialization
JSONObjectWithData:jsonData
options:NSJSONReadingMutableLeaves
error:nil];
NSLog(@"jsonObject is %@",jsonObject);
Он печатает "jsonObject равно null".
Есть ли проблема с "error: no".
Я не использую URL-адрес или методы подключения.
У меня есть json файл, и я хочу отобразить его в таблице.
Ответы
Ответ 1
Пожалуйста, используйте следующий код.
NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData
options:kNilOptions
error:&error];
NSArray* latestLoans = [json objectForKey:@"loans"];
NSLog(@"loans: %@", latestLoans);
Ответ 2
На всякий случай кто-то здесь, чтобы увидеть быстрый код:
NSData для NSDictionary
let dictionary:NSDictionary = NSKeyedUnarchiver.unarchiveObjectWithData(jsonData)! as NSDictionary
NSData для NSString
let resstr = NSString(data: res, encoding: NSUTF8StringEncoding)
Ответ 3
Проверьте свой json-вход, может быть, ваш корневой элемент не является ни словарем, ни массивом? В документации указано, что в этом случае вы должны указать NSJSONReadingAllowFragments.
#import <Foundation/Foundation.h>
int main(int argc, char *argv[]) {
NSAutoreleasePool *p = [[NSAutoreleasePool alloc] init];
NSData *jsonData = [@"{ \"key1\": \"value1\" }" dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *jsonObject=[NSJSONSerialization
JSONObjectWithData:jsonData
options:NSJSONReadingMutableLeaves
error:nil];
NSLog(@"jsonObject is %@",jsonObject);
[p release];
}
Вывод:
2012-09-26 16:06:51.610 Untitled[19164:707] jsonObject is {
key1 = value1;
}
Ответ 4
NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
Это всего лишь более краткий вариант топ-сообщения.
Ответ 5
Отметьте эту ссылку Я уверен, что это поможет вам. но это будет работать только и выше ios 5.
убедитесь, что вы используете ios 5 или выше.