我正在使用Gson处理包含多个Json根元素的巨大Json文件。
喜欢:
{"a": 1}
{"a": 2}
{"a": 3}
这些根元素之间没有单独的逗号。
我确实知道这不是有效的格式,并且无法控制此文件的格式,但是如果需要,我们可以编辑该文件。
目前,我的解决方案是逐行读取文件并逐一解析它们。但是我认为这并不是每一个效率。
另一个解决方案是编辑文件并更改所有根元素,以使其位于Json数组中。但是再次,我认为这不是一个好方法。我的档案很大。
有人可以帮我吗?如果有其他包装可以解决这个问题。我很高兴切换到该位置。
谢谢
最佳答案
编写一个FilterInputStream
实现,该实现将插入顶级数组声明并插入逗号。然后,您可以将其传递给GSON进行解析。
如果文件确实很大,并且您无法在内存中保留最终的大结构,则可以编写FilterInputStream
将输入分成较小但仍有效的顶级块。
这里的可能性是无限的,但我认为某种FilterInputStream
将是一个好的解决方案。