首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在node.js中使用require()时出现奇怪的JSON解析错误

在node.js中使用require()时出现奇怪的JSON解析错误
EN

Stack Overflow用户
提问于 2014-01-29 09:41:50
回答 4查看 6.9K关注 0票数 6

我有以下JSON:

{
   "request" : {
      "language" : "en",
      "title" : "placeholder",
      "year" : "2014"
   }
}

我正在尝试使用以下代码来解析它:

var json = require('../filename);

奇怪的是,我收到了SyntaxError

/home/username/code/filename:2
   "request" : {
             ^
SyntaxError: Unexpected token :
(...)

根据JSONLint的说法,JSON是完全有效的。我是不是漏掉了什么很明显的东西?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-01-29 09:43:08

听起来您创建了一个.js文件,而不是一个.json文件。

因此,它被解析为Javascript,而不是JSON。

票数 9
EN

Stack Overflow用户

发布于 2014-02-01 03:48:01

不应该使用require()来加载JSON文件。它仅用于加载node.js模块,而不是数据。依赖于扩展加载数据已经被有效地弃用了(参见关于require.extensions的无数讨论)。

因此,加载JSON的正确方式如下所示:

JSON.parse(require('fs').readFileSync(__dirname + '/filename', 'utf8'))

票数 7
EN

Stack Overflow用户

发布于 2019-03-01 07:20:10

如果文件的扩展名是'json‘而不是'JSON',那么在windows上也会发生这种失败。我花了一个小时才发现

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21420502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档