使用 node.js 读取 json 文件时出错
Getting error while reading json file using node.js
我在使用 Node.js 读取 json 文件时遇到以下错误。我在下面解释我的代码。
SyntaxError: Unexpected token # in JSON at position 0
at JSON.parse (<anonymous>)
我的 json 文件如下。
test.json:
#PATH:/test/
#DEVICES:div1
#TYPE:p1
{
name:'Raj',
address: {
city:'bbsr'
}
}
此 json 文件包含一些 #
字符串。在这里我需要从这个文件中删除那些 #
包含的字符串。我在下面解释我的代码。
fs.readdirSync(`${process.env['root_dir']}/uploads/${fileNameSplit[0]}`).forEach(f => {
console.log('files', f);
let rawdata = fs.readFileSync(`${process.env['root_dir']}/uploads/${fileNameSplit[0]}/${f}`);
let parseData = JSON.parse(rawdata);
console.log(parseData);
});
这里我尝试先阅读代码,但出现了上述错误。我的需要是从 json 文件中删除那些 #
包含的行,然后读取所有数据并将删除的行转换为 const obj ={PATH:'/test/',DEVICES:'div1',TYPE:p1}
之类的对象。这里我使用 node.js fs
模块来实现这个。
如您所说,您需要从 JSON 文件中删除那些 #
行。您需要自己编写代码。为此,通过向 readFileSync
.
提供字符集,将文件读入字符串而不是缓冲区
const text = fs.readFileSync(path, 'utf8');
console.log(text);
const arr = raw.split("\n");
const noComments = arr.filter(x => x[0] !== "#"));
const filtered = noComments.join("\n");
const data = JSON.parse(filtered);
console.log(data);
我在使用 Node.js 读取 json 文件时遇到以下错误。我在下面解释我的代码。
SyntaxError: Unexpected token # in JSON at position 0
at JSON.parse (<anonymous>)
我的 json 文件如下。
test.json:
#PATH:/test/
#DEVICES:div1
#TYPE:p1
{
name:'Raj',
address: {
city:'bbsr'
}
}
此 json 文件包含一些 #
字符串。在这里我需要从这个文件中删除那些 #
包含的字符串。我在下面解释我的代码。
fs.readdirSync(`${process.env['root_dir']}/uploads/${fileNameSplit[0]}`).forEach(f => {
console.log('files', f);
let rawdata = fs.readFileSync(`${process.env['root_dir']}/uploads/${fileNameSplit[0]}/${f}`);
let parseData = JSON.parse(rawdata);
console.log(parseData);
});
这里我尝试先阅读代码,但出现了上述错误。我的需要是从 json 文件中删除那些 #
包含的行,然后读取所有数据并将删除的行转换为 const obj ={PATH:'/test/',DEVICES:'div1',TYPE:p1}
之类的对象。这里我使用 node.js fs
模块来实现这个。
如您所说,您需要从 JSON 文件中删除那些 #
行。您需要自己编写代码。为此,通过向 readFileSync
.
const text = fs.readFileSync(path, 'utf8');
console.log(text);
const arr = raw.split("\n");
const noComments = arr.filter(x => x[0] !== "#"));
const filtered = noComments.join("\n");
const data = JSON.parse(filtered);
console.log(data);