在 iOS 中使用 NSJSONSerialization 时是不是有数据限制?
Posted
技术标签:
【中文标题】在 iOS 中使用 NSJSONSerialization 时是不是有数据限制?【英文标题】:Is there a data limit when using NSJSONSerialization in iOS?在 iOS 中使用 NSJSONSerialization 时是否有数据限制? 【发布时间】:2013-03-07 13:53:51 【问题描述】:很抱歉打扰您,但我没有找到任何可以帮助我的可用主题。
我通过 NSURLConnection 使用 NSMutableRequest 来获取我的 JSON 数据。收到数据后,我使用[NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error]
对其进行序列化。
在获取较小的 JSON 文件时它工作得很好,但当我收到更大的 JSON 文件时它不起作用。我写了日志NSLog(@"--->: %@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
,输出的不是一条而是两条以--->:
开头的日志记录。第一个输出包含 JSON 的第一部分,JSON 的其余部分位于第二部分。
此错误不允许根据需要创建 NSDictionary。收到的每个“更大”的 JSON 都被拆分为 7500 - 8000 个字符。我的问题是: NSJSONSerialization 可以处理是否有限制?从我的角度来看,它似乎可以处理 8 KB 的数据,仅此而已。有什么办法可以绕过吗?
感谢您的见解。
【问题讨论】:
不确定您的确切问题是什么,但我们通常有大约 500K 的 JSON 数据,并且使用 NSJSONSerialization 转换它并使用 NSLog 将其转储到日志中没有问题。到目前为止,我还没有看到任何限制。 我使用 ios 的 JSON 解析器来处理50 kB
-100 kB
响应。零问题。
【参考方案1】:
谢谢你们的回答。我终于找到了解决我的问题的方法。问题在于在 didReceiveData 方法中严重保存数据。申请[receivedData appendData:data];
后,一切都开始运作良好。 8 kB 的问题可能是一次发送的一大块数据。
【讨论】:
以上是关于在 iOS 中使用 NSJSONSerialization 时是不是有数据限制?的主要内容,如果未能解决你的问题,请参考以下文章
iOS - 如何使用 branch.io 在 Appstore 中测试深度链接
在 React Native 应用程序中使用 Branch.io 在 iOS 中延迟深度链接