在 iOS5 中从网络服务器获取 json 的问题
Posted
技术标签:
【中文标题】在 iOS5 中从网络服务器获取 json 的问题【英文标题】:Issues getting json from webserver in iOS5 【发布时间】:2012-10-04 12:41:35 【问题描述】:我有一个应用程序通过 json 从服务器接收提要。
我一直在为 ios5 构建它,但在过去几周使用 iOS6 进行了测试。我今天用 iOS5 设备测试,一切都崩溃了。
代码如下所示:
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.myserver.com/news.json"]];
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
它没有问题,但现在它返回一个空值。数据不为空。
【问题讨论】:
网址是否在浏览器中打开? 尝试使用简单的 NSURLConnection 并记录错误 [如果有] 网址打开,且不为空。 iOS6 设备可以毫无问题地接收提要。 您有任何错误吗?您是否记录了错误对象? 看起来问题在于将NSData
转换为NSDictionary
和NSJSONSerialization
。如果我将 NSData
转换为 NSString
我得到了 JSON。
【参考方案1】:
Cocoa 错误 3840 表示
数据已损坏,无法读取。 (没有字符串 字符 2 周围对象中值的键。)
您应该使用http://www.jsoneditoronline.org/ 或http://jsonformatter.curiousconcept.com/ 等验证器检查您的json
【讨论】:
我查过了,是有效的。但是看看我自己上面的答案。【参考方案2】:问题是来自网络服务器的重复密钥。现在它起作用了。
但奇怪的是在 iOS5 中触发了该错误,而不是在 iOS6 中。
【讨论】:
以上是关于在 iOS5 中从网络服务器获取 json 的问题的主要内容,如果未能解决你的问题,请参考以下文章