[英]Weird JSON parsing error using require() in node.js
我有以下JSON:
{
"request" : {
"language" : "en",
"title" : "placeholder",
"year" : "2014"
}
}
我正在嘗試使用以下代碼解析:
var json = require('../filename);
奇怪的是,我收到了SyntaxError
/home/username/code/filename:2
"request" : {
^
SyntaxError: Unexpected token :
(...)
根據JSONLint,JSON完全有效。 我錯過了很明顯的東西嗎?
聽起來你制作的是.js
文件,而不是.json
文件。
因此,它被解析為Javascript,而不是JSON。
require()
不應該用於加載JSON文件。 它僅用於加載node.js模塊,而不是數據。 根據擴展名加載數據實際上已被棄用(請參閱有關require.extensions的無數討論)。
所以加載JSON的正確方法是這樣的:
JSON.parse(require('fs').readFileSync(__dirname + '/filename', 'utf8'))
(已編輯)感謝@Aqwis注意到我
要解析JSON,請更好地使用JSON.parse,就像這些線程節目一樣 。
不好的做法與否,如果文件的擴展名是“JSON”而不是“json”,這將在Windows上發生失敗。 我花了一個小時才發現這一點
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.