在 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 转换为NSDictionaryNSJSONSerialization。如果我将 NSData 转换为 NSString 我得到了 JSON。 【参考方案1】:

Cocoa 错误 3840 表示

数据已损坏,无法读取。 (没有字符串 字符 2 周围对象中值的键。)

您应该使用http://www.jsoneditoronline.org/ 或http://jsonformatter.curiousconcept.com/ 等验证器检查您的json

【讨论】:

我查过了,是有效的。但是看看我自己上面的答案。【参考方案2】:

问题是来自网络服务器的重复密钥。现在它起作用了。

但奇怪的是在 iOS5 中触发了该错误,而不是在 iOS6 中。

【讨论】:

以上是关于在 iOS5 中从网络服务器获取 json 的问题的主要内容,如果未能解决你的问题,请参考以下文章

从 reducer 中从服务器获取

如何在本机反应中从 json 获取数据?

在选取器视图中从 JSON 加载数据

如何在 Flutter 中从 API 获取 JSON 数据

如何在反应中从json文件中获取数据?

在javascript中从控制器MVC获取json