问题标签 [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 回答
1420 浏览

javascript - JSONStream 的基本测试不起作用

我正在查看 node.js 中的 JSONStream,我正在尝试使用以下小应用程序来处理它:

不幸的是,在命令行上运行时,这不会向控制台写入任何内容。我究竟做错了什么?

0 投票
1 回答
2371 浏览

javascript - 处理太大而无法放入内存的 JSON 对象

我有一个 Firebase 数据库的转储,它代表我们存储在 JSON 中的用户表。我想对其进行一些数据分析,但问题是它太大而无法完全加载到内存中并使用纯 JavaScript(或_类似库)进行操作。

到目前为止,我一直在使用JSONStream包来处理我的小块数据(它为 JSON 转储中的每个用户调用一次回调)。

不过,我现在遇到了障碍,因为我想根据用户 ID 的值过滤它们。我试图回答的“问题”的形式是“哪些用户 x”,而之前我只是问“有多少用户 x”,并不需要知道他们是谁。

数据格式如下:

我想要做的基本上123567根据foo. _.each现在,如果这是一个小列表,那么使用诸如迭代键和值并提取我想要的键之类的东西将是微不足道的。

不幸的是,由于它不适合无法工作的内存。var parser = JSONStream.parse('users.*');使用 JSONStream,我可以通过使用它并将其传递到一个处理它的函数中来迭代它,如下所示:

但问题是我无法访问代表我传入的星号通配符的密钥JSONStream.parse。换句话说,我不知道是{ foo: bar}代表 user123还是 user 567

问题是双重的:

  1. 如何从回调中获取当前路径?
  2. 有没有更好的方法来处理这个太大而无法放入内存的 JSON 数据?
0 投票
1 回答
1672 浏览

regex - Nodejs:JSONStream解析方法正则表达式

我有这样的有效载荷

我只需要从 json 有效负载中提取 RESOURCE 标记的内容。你能帮我制定正则表达式吗?以下是我尝试过的,它没有调用 parser.data 方法。

0 投票
2 回答
524 浏览

node.js - JSONStream 使用不同的解析器处理一个数据

我正在使用 JSONStream 解析来自服务器的数据,数据可以像 {"error": "SomeError"} 或 {"articles":[{"id": 123}]};

我的代码就像

但不幸的是,即使服务器返回错误,第二个解析器也无法工作。

我在管道函数或 JSONStream 上错了吗?

提前致谢。

0 投票
1 回答
1360 浏览

json - 使用 Oboe.js、MongoDB 和 Express.js 进行 JSON 流式传输

我正在尝试使用 Oboe.js、MongoDB 和 Express.js 通过 HTTP 进行 JSON 流式传输。

关键是在MongoDB(Node.js 的 mongodb 本机驱动器)中进行查询,将其(一个 JavaScript 数组)通过管道传输到Express.js浏览器中并在浏览器中使用Oboe.js.

我所做的基准streamingblockingMongoDB 查询服务器端和客户端的 JSON 解析进行了比较。

这是两个基准测试的源代码。first number是a1000 queries100 items(分页)的毫秒数10 million documents collectionsecond number括号之间表示解析 MongoDB 结果数组中的第一项之前的毫秒数。

流媒体基准服务器端:

阻塞基准服务器端:

这些结果真的让我感到惊讶,因为我会认为:

  1. Streaming会比blocking每次都快。
  2. Oboe.jsJSON.parse与本机方法相比,解析整个 JSON 数组会更快。
  3. Oboe.jsJSON.parse与本机方法相比,解析数组中的第一个元素会更快。

有人有解释吗?我究竟做错了什么 ?

这也是两个客户端基准测试的源代码。

流式基准测试客户端:

阻塞基准客户端:

提前致谢 !

0 投票
1 回答
422 浏览

memory-management - Node.js - 分配失败 - 即使使用 JSONStream 解析器也会处理内存不足

我正在尝试读取和解析 node.js 中大约 12 个大(范围从 100mb+ 到 500mb+)JSON 文件。我尝试使用 JSONStream (正如许多其他人建议的那样作为此问题的解决方案)来防止以下错误:

但是,我仍然收到此错误。这是我第一次尝试使用这样的流式文件阅读器,所以我不确定可能是什么问题。现在,我的代码是:

最终,我想用这些文件中的所有解析数据构建一个累积结果对象,但到目前为止,我尝试过的一切都阻止我解析任何和所有文件。建议?指导?

0 投票
3 回答
2232 浏览

json - 如何从go中的stdin解析一个无限的json数组?

我正在尝试为 i3status 编写一个小替代品,这是一个与符合协议的 i3bar 通信的小程序。他们通过标准输入和标准输出交换消息。

两个方向的流是一个无限的 json 对象数组。从 i3bar 到 i3status 的流的开始(我想替换)如下所示:

这是代表点击的对象“数组”。阵列永远不会关闭。

我现在的问题是:解析这个的正确方法是什么?

显然我不能使用这个json库,因为这不是一个有效的 json 对象。

0 投票
1 回答
4229 浏览

cordova - 安装科尔多瓦时出错

运行此命令后:

我收到此错误:

欢迎帮助。谢谢

0 投票
1 回答
6494 浏览

json - 如何在 Node.js 中使用流对大型嵌套对象进行 JSON 字符串化?

我有一个大型 javascript 对象,我想将其转换为 JSON 并写入文件。我以为我可以使用这样的流来做到这一点

当我尝试这个时,我得到一个错误:

所以显然我不能只写一个对象 this stringifyObject。我不确定下一步是什么。我需要将对象转换为缓冲区吗?通过一些转换流运行对象并将其通过管道传输到strinigfyObject

0 投票
1 回答
746 浏览

node.js - node.js - JSONStream 期间的无限循环

我有一个 node.js 服务器在生产中冻结,它似乎是由 JSONStream 内部的无限循环引起的。这是从冻结服务器的核心转储中捕获的​​堆栈跟踪:

我怎样才能找到这个无限循环的来源?

不幸的是,服务器正在生产中运行并且正在处理数千个请求,因此很难提供任何额外的上下文。服务器的基本功能是为其他服务发出出站 HTTP 请求。

值得注意的是,我不相信这是由内存泄漏引起的。在这些冻结事件期间,服务器的内存使用率保持不变(并且很低),而 CPU 飙升至 99%

另一个关于无限循环结论的证据是事件循环本身似乎已经停止。当我将 console.log 放在 setInterval 中时,服务器一旦冻结就会停止输出。

我们通过将最大连接数设置为 Infinity(禁用它们在 node.js 中的重用)来验证问题不是由过期/损坏的套接字连接引起的

我们使用的是 JSONStream 0.7.1(包括默认的 jsonparse 版本 0.0.5)。我们在 JSONStream 存储库中发现了这个问题,并尝试分叉 JSONParse 并仅更新到最新的 jsonparse 版本。它没有解决问题。