将 NSData 转换为 NSDictionary
Converting NSData to NSDictionary
我正在尝试从 url https://dl.dropboxusercontent.com/s/2iodh4vg0eortkl/facts.json
中获取数据
我在将 nsdata 转换为 nsdictionary 时得到 nil。
我使用了以下代码。我也能够记录数据。但是一旦我将它转换成字典,它就会显示 nil.What 我错过这里了吗?
我也尝试了 nsurlsession 和 afnetworking。得到同样的错误。
NSError *error;
NSString *url_string = [NSString stringWithFormat: DATA_URL];
NSData *data = [NSData dataWithContentsOfURL: [NSURL URLWithString:url_string]];
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
NSLog(@"json: %@", json);
您必须先将 NSData
转换为 UTF8,然后再使用 NSJSONSerialization
进行解析。
NSError* error = nil;
NSString *strISOLatin = [[NSString alloc] initWithData:data encoding:NSISOLatin1StringEncoding];
NSData *dataUTF8 = [strISOLatin dataUsingEncoding:NSUTF8StringEncoding];
id dict = [NSJSONSerialization JSONObjectWithData:dataUTF8 options:0 error:&error];
if (dict != nil) {
NSLog(@"Dict: %@", dict);
} else {
NSLog(@"Error: %@", error);
}
如果您正在寻找 Jayesh Thanki 的 Objective-C 代码的 Swift 等价物,就在这里,
let str = String(data: d, encoding: .isoLatin1)
let data8 = str?.data(using: .utf8)
let result = try JSONSerialization.jsonObject(with: data8!, options: JSONSerialization.ReadingOptions.mutableContainers) as? NSDictionary
我正在尝试从 url https://dl.dropboxusercontent.com/s/2iodh4vg0eortkl/facts.json
中获取数据我在将 nsdata 转换为 nsdictionary 时得到 nil。
我使用了以下代码。我也能够记录数据。但是一旦我将它转换成字典,它就会显示 nil.What 我错过这里了吗?
我也尝试了 nsurlsession 和 afnetworking。得到同样的错误。
NSError *error;
NSString *url_string = [NSString stringWithFormat: DATA_URL];
NSData *data = [NSData dataWithContentsOfURL: [NSURL URLWithString:url_string]];
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
NSLog(@"json: %@", json);
您必须先将 NSData
转换为 UTF8,然后再使用 NSJSONSerialization
进行解析。
NSError* error = nil;
NSString *strISOLatin = [[NSString alloc] initWithData:data encoding:NSISOLatin1StringEncoding];
NSData *dataUTF8 = [strISOLatin dataUsingEncoding:NSUTF8StringEncoding];
id dict = [NSJSONSerialization JSONObjectWithData:dataUTF8 options:0 error:&error];
if (dict != nil) {
NSLog(@"Dict: %@", dict);
} else {
NSLog(@"Error: %@", error);
}
如果您正在寻找 Jayesh Thanki 的 Objective-C 代码的 Swift 等价物,就在这里,
let str = String(data: d, encoding: .isoLatin1)
let data8 = str?.data(using: .utf8)
let result = try JSONSerialization.jsonObject(with: data8!, options: JSONSerialization.ReadingOptions.mutableContainers) as? NSDictionary