在 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] 在 ios10 中使用 imessage

iOS - 如何使用 branch.io 在 Appstore 中测试深度链接

在 React Native 应用程序中使用 Branch.io 在 iOS 中延迟深度链接

在支持 iOS 13.0 的同时在 iOS 14.0 中使用 @StateObject

可以在iOS中使用RFCOMM吗?

如何在 iOS 6 中使用 NSLayoutConstraint?