将node.js缓冲区转换为字符串,然后转换为JSON

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将node.js缓冲区转换为字符串,然后转换为JSON相关的知识,希望对你有一定的参考价值。

我有一个node.js readstream,它发出一个缓冲区并使用toString()函数我将缓冲区转换为字符串,然后当我尝试通过JSON.parse()函数将字符串转换为JSON时,它会抛出解析错误。

有没有最好的方法将缓冲区转换为字符串,然后将该字符串转换为JSON?

JSON字符串如下所示,

[{“data1”:1487328824948,“encrypt”:false,“version”:“1.0.0”,“data2”:“value2”,“data3”:“value3”,“data4”:“value4”,“data5 “:”value5“},{”data1“:148732882448,”encrypt“:false,”version“:”1.0.0“,”data2“:”value2“,”data3“:”value3“,”data4“: “value4”,“data5”:“value5”} .........]

答案
var buf = Buffer.from(JSON.stringify(obj));
var temp = JSON.parse(buf.toString());
另一答案

这似乎是正确的方法,但在调用JSON.parse()之前,您的读取流似乎没有完成读取输入。因此,JSON.parse()调用仅解析部分JSON字符串,然后您将收到错误。

尝试确保read()完成 - 使用readSync()

另一答案

我能够使用JSONStream包解析传入的流。 https://github.com/dominictarr/JSONStream,真的帮助了我这个用例,一个很好用的工具。

相关StackOverflow后 - Parse large JSON file in Nodejs

以上是关于将node.js缓冲区转换为字符串,然后转换为JSON的主要内容,如果未能解决你的问题,请参考以下文章

Node.js - 如何将流转换为字符串

Node.js - 将数据缓冲到 Ffmpeg

将 c++ 双缓冲区传递给 Node Js(直接)[Node JS : V8 c++ : Nan]

将rowdatapacket转换为数组,如何将mysql node.js api rowdatapacket转换为数组,将字符串转换为数组

如何在 Node.js 中读取文件内容并将数据转换为 JSON?

在 Node.js 中响应 JSON 对象(将对象/数组转换为 JSON 字符串)