使用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("读取微信配置文件失败"); } }