我非常熟悉node.js,但这是我第一次玩数据存储和检索。目前很难理解为什么数据在变量数组和.JSON文件内外被不同地解释。
我最初在我的主.js文件中有一个临时的数据数组,看起来像这样。
var data = {
people: [
{name: 'Matt', country: 'NZ'},
{name: 'Pete', country: 'AU'},
{name: 'Mikey', country: 'NZ'}
]
}
我决定在服务器运行时我需要其他实例来操作JSON,所以我的想法就是将这个数组放在自己的.JSON文件中。
现在,经过一些名称等的轻微修改后,结束的json文件看起来像
{
"servers": {
"netdomain": 'google.com',
"netshare": 'password',
"authip": '216.58.203.46'
},
{
"netdomain": 'localhost',
"netshare": 'localghost',
"authip": '127.0.0.1'
},
{
"netdomain": 'facebook.com',
"netshare": 'timeline',
"authip": '31.13.69.228'
}
}
利用main.js中的代码我有这个代码片段
var data = fs.readFile('querykeys.json', 'utf8', function (err, jsonread) {
if (err) {return null;}
obj = JSON.parse(jsonread);
});
我一直收到与我的JSON格式相关的错误,个人我没有看到我在JSON文件中的内容与我在main.js中内置到数组中的内容之间存在巨大差异。
我的终极问题,文件内部的JSON有什么问题让代码以这种方式运行?我怎么能修补它才能使它表现得正常。
由于
答案 0 :(得分:3)
您的JSON格式不正确。
如果您阅读JSON docs,字符串必须用双引号"
答案 1 :(得分:1)
JSON是一种基于子集 JavaScript文字语法的数据格式。它更简单,并且存在很多差异。
其中一个区别是字符串必须用双引号字符分隔。
您的数据结构使用单引号来分隔某些字符串。这适用于JavaScript字符串文字,但在JSON中禁止使用。
答案 2 :(得分:0)
值应该用引号(“)舍入,而不是JSON文件中的单引号(')。