在阅读有关 Json/Gson 的教程时,我注意到大多数人更喜欢将文件作为字符串下载,然后通过 JSON 解析该字符串。但是,大多数 XML 教程更喜欢直接使用 InputStream 进行解析。
为什么两者有区别?最佳实践是什么/它甚至会有所作为吗?
在阅读有关 Json/Gson 的教程时,我注意到大多数人更喜欢将文件作为字符串下载,然后通过 JSON 解析该字符串。但是,大多数 XML 教程更喜欢直接使用 InputStream 进行解析。
为什么两者有区别?最佳实践是什么/它甚至会有所作为吗?
XML 用户学到的教训是内存中的大型对象树会占用大量内存。
JSON 解析树本质上并不比 XML 占用更少的内存,但它通常更简单。例如,与 GSON JsonObject 相比,XML DOM 非常有特色。GSON 可能(我不知道)使用仅加载所需内容的流式解析器(类似于 XML 的 SAX)。
但我想说的是,从那时起我们就学到了。JSON 通常作为字符串加载的原因包括:解析器更高效,在大多数情况下需要的功能比完整的 DOM 更少,硬件更强大,JSON 文件通常更短,程序员更懒惰。
也就是说,当我意识到我必须以复杂的方式处理 JSON 数据集,这些数据集太大而无法有效地存储在单个字符串中时,我发现了这篇文章。你不应该那样做,但我很感激 JsonParser.parse() 有一个也可以采用 InputStream 的实现。