gpt4 book ai didi

javascript - 使用在两个(或更多)缓冲区 block 之间拆分的大型 JSON 的最佳方法是什么

转载 作者:行者123 更新时间:2023-11-30 19:44:34 25 4
gpt4 key购买 nike

想象一下您有一个基本上如下所示的大型 JSON 的情况:

{"name": "...", /*...*/, "data": "..."}

那个 JSON 实际上非常大。此外,该 JSON 在 node.js 缓冲区 block 中传递给我。因为 JSON 很大,所以有两个 block ,第一个包含 name,第二个包含 data

block 可以是这样的:

{"name": "...", /*...*/, "da //chunk1
ta": "..."} //chunk2

我需要根据name修改data。这样做的最佳做法是什么?

我遇到的问题是,由于显而易见的原因(包括内存消耗),我无法JSON.parse 此数据。那么,如果没有 JSON.parse,我该如何处理这种情况呢?我是否必须编写自己的解析器来检测 data 的开始和结束位置?

最佳答案

您的选择相当有限:

  1. Concatenating the buffers ,解析 JSON,然后处理生成的对象树(内存影响等)。

  2. 使用(或构建)流式 JSON 解析器。例如,Oboe.js (无从属关系)描述为:

    Oboe.js is an open source Javascript library for loading JSON using streaming, combining the convenience of DOM with the speed and fluidity of SAX.

    It can parse any JSON as a stream, is small enough to be a micro-library, doesn't have dependencies, and doesn't care which other libraries you need it to speak to.

    We can load trees larger than the available memory. Or we can instantiate classical OOP models from JSON, or completely transform your JSON while it is being read.

    我发现使用搜索“node streaming json parser”; this question是第二个命中,并且有一个关于双簧管的答案。

关于javascript - 使用在两个(或更多)缓冲区 block 之间拆分的大型 JSON 的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55060170/

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