【发布时间】:2021-01-27 09:14:06
【问题描述】:
我正在尝试使用 the validation schema Amazon provides 为 Alexa 智能家居技能后端创建一些集成测试,但是当我尝试使用 JSON.parse 解析它时出现错误:
> JSON.parse(fs.readFileSync('alexa_smart_home_message_schema.json', 'utf-8'))
Uncaught SyntaxError: Unexpected token } in JSON at position 262146
这让我感到惊讶,因为文件看起来很好,并且在 https://www.jsonschemavalidator.net/ 上使用它时没有报告错误,所以它肯定是有效的 JSON,所以我真的不确定这里出了什么问题。在大文件上使用JSON.parse 有什么问题吗?文件不大,大约 635 KiB。
Node.js 版本为 12.20.1
【问题讨论】:
-
这表明您的 JSON 文件中有语法错误。您是否尝试过在 VSCode 等支持语言的编辑器中打开它?如果语言模式设置为 JSON(打开 JSON 文件时应该是自动的),那么它应该突出显示所有错误。
-
JSON Schema 验证器可能不会发现与解析相关的错误。如果您尝试使用普通编辑器但仍有问题,请将您的 JSON 粘贴到 gist 或其他内容中以在此处分享,或者如果时间不长,请将其包含在您的问题中。
-
啊,好吧,我假设验证器会发现任何语法错误,但我在阅读时做错了——结果确实是亚马逊模式中的语法错误!非常感谢:)
-
这是悬空的逗号。 JSON 中不允许。我正在评论您的 github 问题。
-
如果您有不适合 StackOverflow 的问题,请随时加入 JSON Schema 松弛服务器 =]
标签: node.js json jsonschema alexa