我有以下JSON:
{
"request" : {
"language" : "en",
"title" : "placeholder",
"year" : "2014"
}
}
我正在尝试使用以下代码来解析它:
var json = require('../filename);
奇怪的是,我收到了SyntaxError
/home/username/code/filename:2
"request" : {
^
SyntaxError: Unexpected token :
(...)
根据JSONLint的说法,JSON是完全有效的。我是不是漏掉了什么很明显的东西?
发布于 2014-01-29 09:43:08
听起来您创建了一个.js
文件,而不是一个.json
文件。
因此,它被解析为Javascript,而不是JSON。
发布于 2014-02-01 03:48:01
不应该使用require()
来加载JSON文件。它仅用于加载node.js模块,而不是数据。依赖于扩展加载数据已经被有效地弃用了(参见关于require.extensions的无数讨论)。
因此,加载JSON的正确方式如下所示:
JSON.parse(require('fs').readFileSync(__dirname + '/filename', 'utf8'))
发布于 2019-03-01 07:20:10
如果文件的扩展名是'json‘而不是'JSON',那么在windows上也会发生这种失败。我花了一个小时才发现
https://stackoverflow.com/questions/21420502
复制相似问题