【发布时间】:2015-04-19 22:17:42
【问题描述】:
NSString *connection = @"http:"(link);
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{
NSError *error = nil;
NSURL *url = [NSURL URLWithString:connection];
NSString *json = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];
NSLog(@"\nJSON: %@ \n Error: %@", json, error);
if(!error) {
NSData *jsonData = [json dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"%@",jsonData);
NSMutableArray *jsonDict = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:&error];
NSLog(@"JSON: %@", jsonDict);
}
});
以上代码返回:
JSON: "{\"value\":[{\"Id\":\" }}
但是
NSData 是 69746963 735c222c 5c224973 41767469 76655c22 3a5c2231 5c222c
jsonDict 返回 (null)。
我对可能发生的事情感到困惑。 谁能帮我弄清楚。
我正在尝试获取 JSON 数据,但它返回 null。
谢谢
【问题讨论】:
-
NSData 的日志没问题。那是字节,而不是指针。记录调用 JSONObjectWithData 的错误。
-
看起来返回的 json 无效,因此 NSJSONSerialization 失败。错误为零吗?
-
Erro : Error Domain=NSCocoaErrorDomain Code=3840 “操作无法完成。(Cocoa 错误 3840。)”(JSON 文本没有以数组或对象开头,并且允许未设置片段的选项.) UserInfo=0x7f8cbacbc2e0 {NSDebugDescription=JSON 文本没有以数组或对象开头,并且允许未设置片段的选项。} 如何解决此错误?是否只能通过 Web 服务本身实现? -> JamesSugrue
-
一切都很好,你只是在打印字节。
-
修复服务器,使其返回有效的 JSON。
标签: ios json nsdata nsjsonserialization