我正在尝试使用流解析大型JSON文件。如果文件是用ANSI编码我没有问题,但如果文件是UTF-8格式,它会抛出一个错误:
stream.js:74个
扔掉//管道中未处理的流错误。
^
错误:无效的JSON(状态为STOP时位置0处的意外“ï”)
我失败的代码部分看起来像这样:
fileStream = fs.createReadStream(jsonfile, { encoding: 'utf8' });
fileStream.pipe(JSONStream.parse('*'))
.pipe(es.through(function (data) { .....
任何想法为什么它不能识别格式?
答案 0 :(得分:1)
这似乎是在UTF-8文件开头的字节顺序标记“”的麻烦。 (见https://en.wikipedia.org/wiki/Byte_order_mark)
您可以尝试使用解决方案将开始指针位置设置为0到3.我认为这是非常hacky,但这是一种方法。
请参阅https://nodejs.org/api/fs.html#fs_fs_createreadstream_path_options了解如何操作以及进一步的信息。