将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的主要内容,如果未能解决你的问题,请参考以下文章
将 c++ 双缓冲区传递给 Node Js(直接)[Node JS : V8 c++ : Nan]
将rowdatapacket转换为数组,如何将mysql node.js api rowdatapacket转换为数组,将字符串转换为数组