使用 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);