【发布时间】:2021-09-27 20:50:00
【问题描述】:
更新:解决了。原来有一个不受欢迎的不可见的第一个字节。谢谢大家的帮助!我用const xData = data.substr(1)删除了它
似乎是一件容易的事,事实上确实如此,但我试图解析一个特定的 JSON 文件,但我根本做不到。
这个 JSON 文件被系统识别为 HTML 文件(根据file 命令,因为它上面有大量的 HTML)。我尝试了一些在线解析器,他们都说JSON很好。
其他文件也能正常识别。
在 macOS Mojave、Node.JS 8.15.0 上运行,所有文件都以 UTF-8 编码。
有什么线索可以在这里做什么吗?
编辑:JSON 内容:
{
"success": true,
"data": [
{
"id": "24971",
"title": " Funcionament d'un vehicle històric: L'Ou ja es mou",
"image": "http://www.vilanova.cat/content/agenda/24971/LITTLEOU(2).JPG",
"description": "<p>Circulació de l'Ou, una dresina d'obres de 194o. Aquesta activitat permet als visitants experimentar en tren per la nova via de contorn del Museu, des del baixador del Pont de Pineda fins al del Pont de Senyals, situats al passeig Entrevies.</p><p>Aquest vehicle construït el 1940, s'utilitzava per a facilitar els desplaçaments dels professionals del ferrocarril als diferents punts de les línies i poder fer les inspeccions o el manteniment de vies i el seguiment d'obres. És protagonista d'un conte de infantil de la col·lecció del Museu, titulat \"L'Ou que es mou\".</p>",
"start_date": "20/01/2019",
"end_date": "20/01/2019",
"start_hour": "11:30",
"end_hour": "13:30",
"timetable": "<p> De les 11:30 a les 13:30</p>",
"price": "Gratuït, inclós en qualsevol de les tarifes vigents d'emtrada al Museu",
"location": "Museu del Ferrocarril de Catalunya. Vilanova i la Geltrú",
"location_id": "1363",
"address": "Plaça d'Eduard Maristany, s/n",
"x": "393725.02",
"y": "4564273.16",
"lon": "1.7310247183221",
"lat": "41.2210496477307"
}
]
}
代码:
const fs = require('fs')
const data = fs.readFileSync("./result.json", 'utf-8')
const json = JSON.parse(data)
错误:
SyntaxError: Unexpected token in JSON at position 0
at JSON.parse (<anonymous>)
at Object.<anonymous> (/Users/kyngo/Development/OpenDataImporter/reader.js:4:19)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
at Function.Module.runMain (module.js:694:10)
at startup (bootstrap_node.js:204:16)
at bootstrap_node.js:625:3
【问题讨论】:
-
这很可能是因为您的路径错误,返回的是 HTML 404 页面,而不是 JSON 响应。检查开发工具(来源),并告诉我。
-
如果没有文件内容或您的服务器代码,我怀疑任何人都能够为您提供任何帮助。
-
@Lissy 路径没有错,我检查了三次,数据没问题。
-
@MadWard 你是对的,让我尽快更新。
-
@Kyngo 提供开发工具的详细信息,以便我们为您提供帮助。