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的解决方法

Cocoa 错误 3840 操作无法完成

AFNetworking POST 写入服务器并返回失败错误(Cocoa 错误 3840)

解析 JSON 响应时出错 Cocoa 错误 3840

NSJsonSerialzation 未解析来自 Facebook 的结果 - Cocoa 错误 3840 [重复]