【问题标题】:iOS NSJSONSerialization returning nulliOS NSJSONSerialization 返回 null
【发布时间】:2012-04-06 11:05:43
【问题描述】:

我正在开发的应用程序需要解析一个非常大的 Json 文件(17.5 MB 或 1700 万个字符)。

我已经使用较小的 Json 文件对应用程序进行了编码和测试,并且成功进行了解析,只有当我使用该 17.5 MB 文件进行测试时,它才会返回空对象。

我使用的是 iOS 5.1,并使用了 iOS 5.0 的 JSON 阅读器 API 以及 JSONKIT,它们都返回相同的响应,即 NULL。

任何建议将不胜感激

谢谢

【问题讨论】:

  • 您确定这是一个有效(格式正确)的 json 文件吗?
  • 是的,我确实使用简单的 C# 代码验证了 JSON。
  • 我在使用 AFNetworking 时遇到了同样的问题,只是限制要低得多(大约 25kb)。如果有人有解决方案,请发过来。谢谢
  • @Claus 我设法通过分解文件来解决这个问题......这样做,我想你的问题会得到解决。

标签: ios json


【解决方案1】:

如果这真的是一个大小问题,您可能会在某些自然边界上将其分解为多个部分。过去我曾用大型 xml 文件做到这一点,效果很好。

但正如 @Alladinian 在 cmets 中提到的那样,确实验证了它是一个有效的 JSON 文件。

【讨论】:

  • 是的,我确实使用简单的 C# 代码验证了 JSON。 JSON文件没有问题,只是我猜文件大小超过了内存中可以缓存的大小。所以我正在开发一个函数来分解 JSON 并一一解析。
  • 另一个解析器接受它并不意味着它是有效的 JSON。
【解决方案2】:

fwiw,我最近发现了一个错误,当被解析的 JSON 文件大小 > 32k 时,NSJSONSerialization 失败。当我们修剪源 JSON 时,相同的代码路径就可以正常工作。

【讨论】:

  • 是的,伙计,谢谢你的信息。我确实把它分解成几个小 JSON 文件,内存问题就解决了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-17
  • 1970-01-01
相关资源
最近更新 更多