问题标签 [jsonstream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
153 浏览

node.js - 如何自定义 ReadablerStreamReader 来处理数组 JSON

我有 user.json (假设这将是一个大文件,我想流式读取这个文件,但限制块大小)。

我的示例代码。

输出看起来像

我的目标是从多个块中提取 json 对象,以便它可以是 JSON.parse。

我没有找到 node.js 的任何 JSONStreamParse,所以我希望我能在这里得到一些专业的想法。谢谢


更新:

我有一个选择解决方案是使用第 3 方解决方案。流-json

0 投票
0 回答
16 浏览

react-native - 反应原生的可读流

由于 .NET 6 Web API 支持 JSON 流,我们添加了额外的 API 端点并集成了我们所有的 React JS 项目以在我们的 Web 应用程序中读取 JSON 流。我们已经看到使用 JSON 流的所有地方都获得了巨大的性能提升。进展非常顺利。我们在 Web 应用程序中使用两种方法。他们都工作。

节点获取

获取 API

仅供参考,本文中有一段视频展示了 JSON 流式传输的工作原理(https://anthonygiretti.com/2021/09/22/asp-net-core-6-streaming-json-responses-with-iasyncenumerable-example-带角/

但是,在本机反应中,我们无法做到这一点。React Native 的 fetch API 只是等待整个 JSON 进入到 .then(response =>) 部分。它没有读取进来的块。我们尝试了以下第三方库,它们都没有在 React Native 中工作。

https://github.com/joltup/rn-fetch-blob

http://oboejs.com/

http://ndjson.org/

https://www.npmjs.com/package/stream-json

https://www.npmjs.com/package/JSONStream

https://www.npmjs.com/package/clarinet

有没有人成功实现在 React Native 中读取 JSON 流?

谢谢

0 投票
0 回答
40 浏览

javascript - 为什么用 JSONStream 编写会耗尽内存?

我有一个应用程序,它将大量大但不是巨大的 JSON 对象写入输出文件。对象被创建、写入,然后被丢弃(即我不会将它们全部保留)。我正在使用JSONStream试图使内存使用成为非问题,但它不起作用。

这是一个简单的示例,显示了我遇到的问题:

此示例使用 JSONStream 将 70000 个对象(每个大约 20kB)流式传输到一个文件(这在我的实际应用程序的范围内)。但是,它在 45000 左右内存不足(帖子末尾的完整输出):

另外我注意到,当我调用outputTransform.write时,文件大小保持在 0(在上述 OOM 之后也是 0)。outputTransform.end在被调用之前它不会开始增长。所以我假设输出数据正在某处缓冲并且正在吃掉堆。

预期的行为outputTransform.write会导致输出立即被写入,或者至少缓冲在一个可管理大小的缓冲区中;因此我可以编写任意数量的对象,而不必担心 OOM。

所以我的问题是,有没有办法让 JSONStream 不在内存中保存所有这些数据?

增加堆大小并不是一个真正的选择,因为它仍然存在内存限制的上限。


完整输出: