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

Posted

技术标签:

【中文标题】NSJsonSerialzation 未解析来自 Facebook 的结果 - Cocoa 错误 3840 [重复]【英文标题】:NSJsonSerialzation not parsing results from Facebook - Cocoa error 3840 [duplicate] 【发布时间】:2013-07-30 19:52:07 【问题描述】:

我在我的 ios 应用程序上使用 Facebook 进行身份验证,并使用以下方法获取提要。 当我检查它是否是有效的 JSON 对象时,它返回 true,但如果我尝试解析它,它会给我错误:

Mistake: The operation couldn’t be completed. (Cocoa error 3840.)

对此可以做些什么?这是来自服务器的内容,完全有效的 JSON - http://pastebin.com/ZwTnvi5g(通过 NSLog 得到结果)。

如何修复它以便 nsjsonserialization 正确解析它?

- (void) refreshButtonPressed

    FBRequest *request = [[FBRequest alloc] initWithSession:FBSession.activeSession graphpath:@"me/feed"];
    [request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) 

        NSError *mistake;

        BOOL can = [NSJSONSerialization isValidJSONObject:result];

        NSLog(@"%d", can);


        NSDictionary *first = [NSJSONSerialization JSONObjectWithData:result options:NSJSONReadingAllowFragments error:&mistake];

        if (mistake) 
            NSLog(@"Mistake: %@", [mistake localizedDescription]);
        
    ];

【问题讨论】:

向我们展示一些实际的 JSON,而不是像您所说的那样,是大型字典中的 NSLog() @CodaFi - 这是此完成处理程序获取的 id 结果的 NSLog,但无法转换。我不知道如何获得比这更好的东西.. @CodaFi 它打印我在 pastebin 上提供的文本,就是这样,我没有剪切或添加任何东西 @Dvole 如果这是你得到的 JSON,那么它根本就无效。通过 JSON linter 运行它,你会明白我的意思。 【参考方案1】:

实际上阅读文档可能会有所帮助。

 @param result          The result of the request.  This is a translation of
                        JSON data to `NSDictionary` and `NSArray` objects.  This
                        is nil if there was an error.

它自己解析一切,我什至不需要这样做。所以它返回有效的 NSDictionary 或 NSArray。

【讨论】:

以上是关于NSJsonSerialzation 未解析来自 Facebook 的结果 - Cocoa 错误 3840 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

计划解析来自 ios 的推送通知未在仪表板上更新

未解析的符号:来自 Emscripten 的 llvm_trap

未找到模块:无法解析“

MSVC 中的链接错误 LNK2019,带有 __imp__ 前缀的未解析符号,但应该来自静态库

Android java.net.UnknownHostException:主机未解析

数据未解析我想将数据解析为字典然后解析为数组然后迭代它