【发布时间】:2014-03-11 12:50:23
【问题描述】:
我已经阅读了文档、教程和其他 Stack Q&A,我很想知道如何使用 NSUTF8StringEncoding 让我的 JSON 出现,但不使用 NSJSONSerialization - 这就是我需要将数据提取到NSDictionary 或NSArray。我认为这是从我的 URL 返回的 NSData 格式的问题?
编辑这里是错误:Error Domain=NSCocoaErrorDomain Code=3840“无法完成操作。(Cocoa 错误 3840。)”(垃圾结束。) UserInfo=0x8aabc30
NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.sampleURL.com"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:15.0];
NSMutableData* responseData = [NSMutableData dataWithCapacity: 0];
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
//this works, and have NSLog below
responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"string %@", responseString);
[responseData appendData:data];
responseData = [[NSMutableData alloc] initWithData:data];
//this is null in NSLog
NSError * error;
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers|NSJSONReadingAllowFragments error:&error];
NSLog(@"jsonDict dict %@",jsonDict);
}
调试控制台:
2014-03-11 07:41:58.233 WBPC[7845:a0b] string {"id":"a1","session":"General","name":"Exhibitor Setup Begins","startTime":"0900","details":"9am Exhibitor Hall","png":"image","speaker1":"Johnson","speaker2":"Nelson","speaker3":""}{"id":"b1","session":"General","name":"Conference Registration","startTime":"1000","details":"10am Noon Upper Level Lobby","png":"image","speaker1":"Jackson","speaker2":"","speaker3":""}
2014-03-11 07:41:58.236 WBPC[7845:a0b] jsonDict (null)
【问题讨论】:
-
NSMutableDictionary * json = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingMutableContainers error: &error];试试这个
-
我实际上尝试过那个(来自你们中的其他 Stack 帖子),但没有运气。我确信这是从 URL 返回的 JSON 的格式问题...
-
@NamoNamo - 这是我从 NSJSONSerialization 收到的错误:错误域 = NSCocoaErrorDomain 代码 = 3840“操作无法完成。(可可错误 3840。)”(垃圾结束。)用户信息=0x8aabc30。谢谢。
标签: ios json nsdata nsjsonserialization