杰克逊流解析器位置

时间:2017-08-06 20:29:13

标签: java json jackson jackson2

我正在构建一个工具来解析大约1GB的巨大JSON。在那个逻辑中,我正在创建JsonParser对象继续阅读,直到达到预期的JsonToken。现在我创建另一个JsonParser(称为子),它应该从之前的JsonParser令牌位置开始,没有太多开销。有没有办法在JasonParser API中做到这一点?我正在使用skipChildren(),这也在我的方案中花费时间。

1 个答案:

答案 0 :(得分:0)

您可以尝试调用releaseBuffered(...)来获取解析器读取但未使用的数据,然后将这些数据添加到输入流(getInputSource())以某种方式解析生成的流(一种方法可能是在构造解析器时使用支持标记的输入流。)

但是,由于您已经在使用基于流的API,因此与skipChildren()相比,您可能无法获得更好的性能。