我如何读取这个文件'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一些软件包来解决这个问题吗?
6条答案
按热度按时间wqlqzqxt1#
https://www.npmjs.com/package/hjson是解决此问题的最佳软件包
hjson文本输入:
用法:
8iwquhpp2#
您可以很容易地使用自己的
RegExp
来匹配以#
开头的注解5n0oy7gb3#
关于国家预防机制,有备选方案:json-easy-strip主要思想是使用一行RegExp来去除所有类型的JS风格注解。是的,它很简单,也很可能!包更高级,有一些文件缓存等,但仍然很简单。以下是核心:
sweet.json
index.js
现在,因为您询问了ShellScripting样式的注解
我们可以通过在RegExp末尾添加
\#.*
来扩展它:或者,如果您根本不需要JS风格的注解:
r7knjye24#
您要查找的软件包名为strip-json-comments -https://github.com/sindresorhus/strip-json-comments
s4chpxco5#
您可以使用json5模块
zqdjd7g96#
Javascript有一个内置的注解移除器,不需要额外的软件包。不过我不会为用户输入做这个。