最佳实践 - 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 解析实现和最佳实践?

使用 jQuery 解析远程内容的最佳实践是啥?

在DOM中嵌入任意JSON的最佳实践?

在 JSON 中传递美元金额的最佳实践是啥?

最好用的json库,也许是JSON for modern C++ 的最佳实践!解决nlohmann json中文无法解析的问题!

JSON 数据结构 - JSON 到对象 - 最佳实践