2

我从家庭控制设备请求 JSON 响应:

NSData* responseData = [NSData dataWithContentsOfURL:url];

中的 JSON 数据responseData完整有效。但是,如果我尝试

NSDictionary* dict = [NSJSONSerialization 
                          JSONObjectWithData:responseData                          
                          options:kNilOptions 
                          error:&error];
NSLog("Error: %@", error);

它给了我以下错误:

错误:错误域=NSCocoaErrorDomain 代码=3840“操作无法完成。(Cocoa 错误 3840。)”(字符 0 周围对象的重复键。) UserInfo=0x6a8b8e0 {NSDebugDescription=字符 0 周围对象的重复键。}

我在网上搜索但到目前为止找不到任何有用的东西。


编辑:JSON 响应很长,所以不要在此处发布,请在此处查找。

4

3 回答 3

0

我得到了同样的错误。我的 JSON 数据在http://jsonformatter.curiousconcept.com/通过 JSON 验证器。但是,我在我的 JSON 中发现了两个重复的键(在字典的末尾)。删除这些键后, NSJSONSerialization 工作顺利。

于 2012-12-01T06:20:24.757 回答
0

我得到了同样的错误,只是在应用程序运行时随机出现。当 NSJSONSerialization 失败时,我使用 JSON 查看器检查了它阻塞的 json 对象。JSON 总是可以的。多次调用 NSJSONSerialization 中的错误?

于 2012-06-13T11:19:43.970 回答
0

将 JSON 粘贴到http://jsonformat.com/看起来就好了- 也许您发现了 Apple 错误?另一种尝试验证的方法是使用第三方 iOS 库,看看它是否会给您同样的错误?说,TouchJSON

于 2012-03-25T10:40:42.430 回答