JSON解释NODE.JS

时间:2016-07-13 14:55:51

标签: javascript arrays json node.js

我非常熟悉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有什么问题让代码以这种方式运行?我怎么能修补它才能使它表现得正常。

由于

3 个答案:

答案 0 :(得分:3)

您的JSON格式不正确。

如果您阅读JSON docs,字符串必须用双引号"

包装

答案 1 :(得分:1)

JSON是一种基于子集 JavaScript文字语法的数据格式。它更简单,并且存在很多差异。

其中一个区别是字符串必须用双引号字符分隔。

您的数据结构使用单引号来分隔某些字符串。这适用于JavaScript字符串文字,但在JSON中禁止使用。

答案 2 :(得分:0)

值应该用引号(“)舍入,而不是JSON文件中的单引号(')。