最佳实践 - Json 解析中的字符串与 InputStream(使用 gson)
Posted
技术标签:
【中文标题】最佳实践 - Json 解析中的字符串与 InputStream(使用 gson)【英文标题】:Best Practice - String vs InputStream in Json Parsing (using gson) 【发布时间】:2012-05-31 04:11:09 【问题描述】:在阅读有关 Json/Gson 的教程时,我注意到大多数人更喜欢将文件作为字符串下载,然后通过 JSON 解析该字符串。但是,大多数 XML 教程更喜欢直接使用 InputStream 进行解析。
为什么两者之间有区别?什么是最佳做法/它甚至会产生影响吗?
【问题讨论】:
【参考方案1】:XML 用户学到的教训是内存中的大型对象树会占用大量内存。
JSON 解析树本质上并不比 XML 占用更少的内存,但它通常更简单。例如,与 GSON JsonObject 相比,XML DOM 非常有特色。 GSON 可能(我不知道)使用仅加载所需内容的流解析器(类似于 XML 的 SAX)。
但我想说的是,从那时起我们就学到了。 JSON 通常作为字符串加载的原因包括:解析器更高效、在大多数情况下所需的功能比完整 DOM 少、硬件更强大、JSON 文件通常更短、程序员更懒惰。
也就是说,当我意识到我必须以复杂的方式处理 JSON 数据集,这些数据集太大而无法有效地存储在单个字符串中时,我发现了这篇文章。你不应该那样做,但我很感激 JsonParser.parse() 有一个也可以采用 InputStream 的实现。
【讨论】:
以上是关于最佳实践 - Json 解析中的字符串与 InputStream(使用 gson)的主要内容,如果未能解决你的问题,请参考以下文章
Objective-c 中更好的 JSON 解析实现和最佳实践?
最好用的json库,也许是JSON for modern C++ 的最佳实践!解决nlohmann json中文无法解析的问题!