【问题标题】:JSON Interpretation NODE.JSJSON 解释 NODE.JS
【发布时间】:2016-07-13 22:59:58
【问题描述】:

我对 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 中的这段代码,我有这个 sn-p

var data = fs.readFile('querykeys.json', 'utf8', function (err, jsonread) {
      if (err) {return null;}
      obj = JSON.parse(jsonread);
    });

我不断收到与我的 JSON 格式化方式相关的错误,我个人认为 JSON 文件中的内容与我在 main.js 中的数组中构建的内容之间没有巨大差异。

我的终极问题是,文件中的 JSON 有什么问题使代码以这种方式运行?我该如何修改它以使其正常运行。

谢谢

【问题讨论】:

  • 通常,告诉我们错误是什么而不是说“我不断收到错误”会有所帮助。
  • @JLRishe I keep getting an error related to the way my JSON is formatted 我认为这是一个很好的描述......
  • 注意不要将纯 JSON 与 javascript 对象混为一谈。在 main.js 中,您有一个有效的 javascript 对象,但不是有效的 JSON;这是语法问题。在你的键周围添加 "
  • @Neal 这并不可怕,但有什么好的理由不包括实际错误吗?最有可能的是,他收到了错误Unexpected token ',这表明问题出在哪里。
  • @Neal 几乎肯定。无论如何,要点仍然是没有充分的理由不包括实际错误

标签: javascript arrays json node.js


【解决方案1】:

您的 JSON 格式错误。

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

【讨论】:

  • 只是为了完整起见:注意不要将纯 JSON 与 javascript 对象混为一谈。在 main.js 中,您有一个有效的 javascript 对象,但不是有效的 JSON;这是语法问题。
  • 嗯?我没有任何东西@NicolaPedretti
  • {name: 'Matt', country: 'NZ'} 这是一个有效的 javascript 对象,但不是有效的 JSON
  • 好的....我仍然不确定这与我的回答有什么关系@NicolaPedretti 你是不是想在 OP 问题上发表评论?
  • 哦,是的!我会解决的
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2018-01-16
      • 2017-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-16
      • 2016-05-24
      • 2017-03-26
      • 1970-01-01
      相关资源
      最近更新 更多