将 node.js 缓冲区转换为字符串,然后再转换为 JSON
Convert a node.js buffer to string and then to JSON
我有一个 node.js 读取流,它发出一个缓冲区并使用 toString() 函数将缓冲区转换为字符串,然后当我尝试通过 [=43 将字符串转换为 JSON =]() 函数抛出解析错误。
是否有将缓冲区转换为字符串然后将该字符串转换为 JSON 的最佳方法?
JSON 字符串如下所示,
[{"data1":1487328824948,"encrypt":假,"version":“1.0.0”,"data2":"value2","data3": "value3", "data4": "value4", "data5": "value5"},{"data1": 148732882448, "encrypt": 错误, "version": "1.0.0", "data2": "value2", "data3": "value3", "data4": "value4", "data5": "value5"}.........]
这似乎是正确的方法,但在您调用 JSON.parse() 之前,您的读取流似乎没有完成读取输入。因此 JSON.parse() 调用仅解析部分 JSON 字符串,然后出现错误。
尝试确保 read() 完成 - 使用 readSync()?
var buf = Buffer.from(JSON.stringify(obj));
var temp = JSON.parse(buf.toString());
我能够使用 JSONStream 包解析传入的流。 https://github.com/dominictarr/JSONStream,在这个用例中确实帮助了我,一个很好用的工具。
相关 Whosebug post - Parse large JSON file in Nodejs
我有一个 node.js 读取流,它发出一个缓冲区并使用 toString() 函数将缓冲区转换为字符串,然后当我尝试通过 [=43 将字符串转换为 JSON =]() 函数抛出解析错误。
是否有将缓冲区转换为字符串然后将该字符串转换为 JSON 的最佳方法?
JSON 字符串如下所示,
[{"data1":1487328824948,"encrypt":假,"version":“1.0.0”,"data2":"value2","data3": "value3", "data4": "value4", "data5": "value5"},{"data1": 148732882448, "encrypt": 错误, "version": "1.0.0", "data2": "value2", "data3": "value3", "data4": "value4", "data5": "value5"}.........]
这似乎是正确的方法,但在您调用 JSON.parse() 之前,您的读取流似乎没有完成读取输入。因此 JSON.parse() 调用仅解析部分 JSON 字符串,然后出现错误。
尝试确保 read() 完成 - 使用 readSync()?
var buf = Buffer.from(JSON.stringify(obj));
var temp = JSON.parse(buf.toString());
我能够使用 JSONStream 包解析传入的流。 https://github.com/dominictarr/JSONStream,在这个用例中确实帮助了我,一个很好用的工具。
相关 Whosebug post - Parse large JSON file in Nodejs