最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

大JSON解析失败

IT培训 admin 5浏览 0评论

大JSON解析失败

我有一个大的JSON文件,记录了约220k条记录,大小为223MB。我可以使用名为Huge JSON Viewew的程序打开JSON,这意味着文件结构良好,但是在解析时会显示错误。


const fs = require("fs");

const rawdata = fs.readFileSync("jsonFile.json");
let inproceedings = JSON.parse(rawdata);

显示的错误:

undefined:1
��[
^

SyntaxError: Unexpected token � in JSON at position 0
    at JSON.parse (<anonymous>)
    at Object.<anonymous> (C:\Users\HP\Desktop\DATA\script\jsonFile.js:6:26)
?[90m    at Module._compile (internal/modules/cjs/loader.js:936:30)?[39m
?[90m    at Object.Module._extensions..js (internal/modules/cjs/loader.js:947:10)?[39m
?[90m    at Module.load (internal/modules/cjs/loader.js:790:32)?[39m
?[90m    at Function.Module._load (internal/modules/cjs/loader.js:703:12)?[39m
?[90m    at Function.Module.runMain (internal/modules/cjs/loader.js:999:10)?[39m
?[90m    at internal/main/run_main_module.js:17:11?[39m
PS C:\Users\HP\Desktop\DATA\script>

回答如下:

问题是,当您读取File时,它将作为缓冲区读取。读取时使用utf-8编码[https://nodejs/api/fs.html#fs_fs_readfilesync_path_options]

const rawdata = fs.readFileSync("jsonFile.json",{encoding: 'utf-8'});
let inproceedings = JSON.parse(rawdata);

大JSON解析失败

我有一个大的JSON文件,记录了约220k条记录,大小为223MB。我可以使用名为Huge JSON Viewew的程序打开JSON,这意味着文件结构良好,但是在解析时会显示错误。


const fs = require("fs");

const rawdata = fs.readFileSync("jsonFile.json");
let inproceedings = JSON.parse(rawdata);

显示的错误:

undefined:1
��[
^

SyntaxError: Unexpected token � in JSON at position 0
    at JSON.parse (<anonymous>)
    at Object.<anonymous> (C:\Users\HP\Desktop\DATA\script\jsonFile.js:6:26)
?[90m    at Module._compile (internal/modules/cjs/loader.js:936:30)?[39m
?[90m    at Object.Module._extensions..js (internal/modules/cjs/loader.js:947:10)?[39m
?[90m    at Module.load (internal/modules/cjs/loader.js:790:32)?[39m
?[90m    at Function.Module._load (internal/modules/cjs/loader.js:703:12)?[39m
?[90m    at Function.Module.runMain (internal/modules/cjs/loader.js:999:10)?[39m
?[90m    at internal/main/run_main_module.js:17:11?[39m
PS C:\Users\HP\Desktop\DATA\script>

回答如下:

问题是,当您读取File时,它将作为缓冲区读取。读取时使用utf-8编码[https://nodejs/api/fs.html#fs_fs_readfilesync_path_options]

const rawdata = fs.readFileSync("jsonFile.json",{encoding: 'utf-8'});
let inproceedings = JSON.parse(rawdata);

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论