使用NodeJs读取json格式的文件,转换成对象时报错 :SyntaxError: Unexpected token in JSON at position 0,这个问题查了两三个小时,记录一下解决方法。
JSON格式的文件:
{
"token": "zeroes",
"appid": "wxce06f44f4233cfe954"
}
正确的读写方式:
//读取配置文件
function readConfig() {
var configStr = $scope.fs.readFileSync(config.weixin.path, 'utf8');
console.log(configStr);
//没有下面这行就抛异常
configStr = JSON.stringify(configStr);
return JSON.parse(configStr);
}
上面的方式只是不报错了,但JSON.parse 之后是string类型不是对象。
最后还是用到了 eval:
$scope.readConfig = function () {
try {
var configStr = $scope.fs.readFileSync(config.weixin.path, 'utf8');
console.log(configStr);
var obj = eval('(' + configStr + ')');
$scope.weixin.appid = obj.appid;
$scope.weixin.appsecret = obj.appsecret;
$scope.weixin.qrcodeurl = obj.qrcodeurl;
}
catch (e) {
console.log(e);
alert("读取微信配置文件失败");
}
}