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

问题描述 投票:0回答:3

我有一个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”} .........]

javascript node.js stream buffer
3个回答
1
投票
var buf = Buffer.from(JSON.stringify(obj));
var temp = JSON.parse(buf.toString());

0
投票

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

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


0
投票

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

相关StackOverflow后 - Parse large JSON file in Nodejs

© www.soinside.com 2019 - 2024. All rights reserved.