阅读json文件忽略自定义评论

我怎样才能读取这个文件'file.json':

# Comment01 # Comment02 { "name": "MyName" } 

并检索json没有评论?

我正在使用这个代码:

 var fs = require('fs'); var obj; fs.readFile('./file.json', 'utf8', function (err, data) { if (err) throw err; obj = JSON.parse(data); }); 

它返回这个错误:

 SyntaxError: Unexpected token # in JSON at position 0 

有没有npm一些包来解决这个问题?

你正在寻找的包叫做strip-json-comments – https://github.com/sindresorhus/strip-json-comments

 const json = '{/*rainbows*/"unicorn":"cake"}'; JSON.parse(stripJsonComments(json)); //=> {unicorn: 'cake'} 

您可以很容易地使用自己的RegExp来匹配以#开头的注释,

 const matchHashComment = new RegExp(/(#.*)/, 'gi'); const fs = require('fs'); fs.readFile('./file.json', (err, data) => { // replaces all hash comments & trim the resulting string let json = data.toString('utf8').replace(matchHashComment, '').trim(); json = JSON.parse(json); console.log(json); }); 

这个问题的完美包是https://www.npmjs.com/package/hjson

hjsonTextinput:

 # Comment01 # Comment02 { "name": "MyName" } 

用法:

 var Hjson = require('hjson'); var obj = Hjson.parse(hjsonText); var text2 = Hjson.stringify(obj);