在Nodejs中使用require时,JSON对象不起作用

时间:2015-09-25 04:45:31

标签: json

我在server.js文件中有一个JSON对象:

var stores = { 
              1: { "name": "a", "region": "vic" },
              2: { "name": "b", "region": "nsw" }
             };

但我想把它放到一个外部JSON文件中,因为它是一个巨大的列表并使用:

var stores = require('./storeData.json');

所以我仍然可以有商店[1] [“name”] =“a” 但是,我收到的错误是:

SyntaxError: /home/username/Documents/storeData.json: Unexpected token :
    at Object.parse (native)
    at Object.Module._extensions..json (module.js:486:27)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (/home/username/Documents/server.js:18:14)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)

我无法弄清楚如何构建JSON以使其工作。

3 个答案:

答案 0 :(得分:2)

JSON比JS对象语法更具体。在JSON对象表示中,每个键必须是一个字符串(并且引用):

{ 
  "1": { "name": "a", "region": "vic" },
  "2": { "name": "b", "region": "nsw" }
}

答案 1 :(得分:0)

您不能在json中使用数字作为键 你可以做这样的事情

var stores = { 
              "1": { "name": "a", "region": "vic" },
              "2": { "name": "b", "region": "nsw" }
             };

答案 2 :(得分:0)

尝试使用json集合(广泛使用)。并且你必须引用每个键成为字符串格式或它会给出错误。 或者如果你想保留你的甲酸盐,你也可以选择这个

{ 
"1": { "name": "a", "region": "vic" },
"2": { "name": "b", "region": "nsw" }
}