我正在构建一个工具来解析大约1GB的巨大JSON。在那个逻辑中,我正在创建JsonParser
对象继续阅读,直到达到预期的JsonToken
。现在我创建另一个JsonParser
(称为子),它应该从之前的JsonParser令牌位置开始,没有太多开销。有没有办法在JasonParser API中做到这一点?我正在使用skipChildren()
,这也在我的方案中花费时间。
答案 0 :(得分:0)
您可以尝试调用releaseBuffered(...)
来获取解析器读取但未使用的数据,然后将这些数据添加到输入流(getInputSource()
)以某种方式解析生成的流(一种方法可能是在构造解析器时使用支持标记的输入流。)
但是,由于您已经在使用基于流的API,因此与skipChildren()
相比,您可能无法获得更好的性能。