gpt4 book ai didi

java - TokenBuffer jackson Json

转载 作者:行者123 更新时间:2023-11-30 08:40:10 25 4
gpt4 key购买 nike

我想知道如何处理大型 JSON 文件。

我不想将它们存储在内存中,所以我不想执行 JsonNode,因为我认为会将整个树存储在内存中。

我的另一个想法是使用 TokenBuffer。但是,我想知道这是如何工作的。 TokenBuffer 是否也存储整个文档?有上限吗。我知道这是性能最佳实践,但如果我这样做:

TokenBuffer buff = jParser.readValueAs(TokenBuffer.class);

它似乎一次读取了整个文档(我不想要)。

最佳答案

目的TokenBuffer是在内存中存储一​​个可扩展的 JSON token 数组。它首先创建 1 个 Segment 对象和 16 个 JsonToken 对象,然后根据需要添加新的 Segment 对象。

您猜测整个文档将加载到内存中是正确的。唯一的区别是它存储的不是字符数组,而是标记。根据 docs 的性能优势:

  1. 您可以重新处理 JSON token ,而无需从文本表示中重新解析 JSON 内容。
  2. 如果您想按照附加到缓冲区中的顺序遍历所有标记,速度会更快。

TokenBuffer 不是内存中磁盘文件的低级缓冲区。

如果您只想解析一个文件一次,而不是一次将所有文件加载到内存中,请跳过 TokenBuffer。只需从 JsonFactoryMappingJsonFactorycreateJsonParser 并使用 nextToken 获取 token 。 Example .

关于java - TokenBuffer jackson Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35778718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com