cocoa错误3840 NSJSONSerialization的解决方法
Posted
技术标签:
【中文标题】cocoa错误3840 NSJSONSerialization的解决方法【英文标题】:solution for cocoa error 3840 NSJSONSerialization 【发布时间】:2014-11-28 11:39:08 【问题描述】:我在尝试序列化 JSON 响应时收到可可错误 3840,并且在控制台中收到以下错误消息 “JSON 文本没有以数组或对象开头,并且允许未设置片段的选项。”但我碰巧检查了 chrome 客户端中的响应,我得到了正确的响应。当我将响应复制粘贴到 JSONValidator 中时,我将其作为有效的 JSON。但在我的 ios 应用程序中,我不知何故无法得到响应。
有没有办法从 iOS 代码中修复它?我尝试了互联网上所有可能的解决方案。
NSError *error = nil;
NSMutableArray *jsons = [NSJSONSerialization JSONObjectWithData:theResponseData options:NSJSONReadingAllowFragments error:&error];
NSLog(@"connectionDidFinishLoading %@", jsons);
我在序列化选项中尝试了 MutableContainers、MutableLeaves 和 kNil。我仍然无法获取数据。
【问题讨论】:
【参考方案1】:试试这个 - 希望它会工作
if ([operation isKindOfClass:[AFJSONRequestOperation class]] && [operation respondsToSelector:@selector(setJSONReadingOptions:)])
((AFJSONRequestOperation *)operation).JSONReadingOptions = NSJSONReadingAllowFragments;
[httpClient enqueueHTTPRequestOperation:operation];
如果不行的话
["Firstname":"Johnny"],
这是您的 Web 响应应包含的唯一示例内容。
【讨论】:
我们是否需要为 AFJSONRequestOperation 导入任何框架?什么是操作?什么是httpClient? 发送您的 JSON 示例以上是关于cocoa错误3840 NSJSONSerialization的解决方法的主要内容,如果未能解决你的问题,请参考以下文章
Error Domain = NSCocoaErrorDomain Code=3840 "操作无法完成。(Cocoa 错误 3840。)
cocoa错误3840 NSJSONSerialization的解决方法