阅读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);