我正在使用require("fs")
在Node.js中读取json文件。
类似的东西:
var readJsonFromFile= function(fileLocation, callback){
fs.readFile(fileLocation, 'utf8', function (err, data) {
if (err) {
return callback(err);
}
data = JSON.parse(data);
callback(null,data);
});
}
但是,我注意到JSON.parse
:
// bla
或/* blaa */
虽然我意识到这在技术上是正确的,但是我想知道是否存在任何小型库来清理我经常注释的json文件以保证上述内容。 (不,它不是完全琐碎的DIY,认为//
是有效价值的一部分,等等。)
由于
答案 0 :(得分:4)
是的!我为此目的使用Kyle Simpson的JSON.minify:
https://github.com/getify/JSON.minify
它不是一个完整的Node模块,但它可以很好地加载类似JSON的配置文件等。请注意,您仍然需要引用您的密钥,但它允许发表评论。
var config = JSON.parse(JSON.minify(fs.readFileSync(configFileName, 'utf8')));
答案 1 :(得分:2)
HJSON符合所有这些要求。
//
条评论/* */
条评论示例文字:
{
# specify rate in requests/second (because comments are helpful!)
rate: 1000
// prefer c-style comments?
/* feeling old fashioned? */
# did you notice that rate doesn't need quotes?
hey: look ma, no quotes for strings either!
# best of all
notice: []
anything: ?
# yes, commas are optional!
}
答案 2 :(得分:-1)
只需使用JS-YAML来解析您的JSON文件。 YAML是JSON的超集,支持您想要的功能。
如果您不想,您不需要在配置文件中实际使用任何特定于YAML的内容;只需使用YAML解析器作为JSON解析器,修复3个烦人的问题(评论,引用和尾随逗号)。
它甚至带有一个命令行工具,可以将YAML转换为普通的JSON:
~> echo "{ foo: 10, bar: [20, 30], }" | js-yaml -j /dev/stdin
{
"foo": 10,
"bar": [
20,
30
]
}