我完全不熟悉JSON。我不经常使用它,所以我只是想快速解决问题,但作为程序员,我也喜欢一些基本的理解。
我使用Brackets编辑某些内容进行工作,而自动完成让我感到疯狂。我讨厌你自动完成,我非常讨厌你。我在https://github.com/talmand/Brackets-Disable-AutoClose-Tags找到了一段代码,打算在打开新代码时拒绝自动完成。它并没有完全关闭自动完成 - 它仍然会在开始时尝试完成结束标记。旨在有用,但我发现它非常刺激。
我将代码插入到首选项文件中,并且在语句中,似乎很明显我需要做的就是将whenClosing更改为false,但是当我执行它时,然后关闭并且重新打开程序以使其生效,它告诉我我的首选项文件包含无效的JSON。我改变的是whenClosing时值true为false。我使用JSONlint试着看看有什么不对,但JSON对我来说不是一种熟悉的语言。代码包含在下面。
我做错了什么?
+++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++
这是我复制到文件中的未经修改的代码:
"closeTags": { "whenOpening": false, "whenClosing": true, "indentTags": [] }
+++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++
这是我的首选项文件包含的总块,我的编辑:
{
"closeBrackets": false,
"debug.showErrorsInStatusBar": true
}
"closeTags": { "whenOpening": false, "whenClosing": false, "indentTags": [] }
+++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++
这就是JSONlint所说的:
Parse error on line 4:
...InStatusBar": true}"closeTags": { "
----------------------^
Expecting 'EOF', '}', ',', ']'
+++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++
@Shaunak有道理!我添加了逗号,并得到了这个:
答案 0 :(得分:3)
关闭括号后需要逗号。
{
"closeBrackets": false,
"debug.showErrorsInStatusBar": true
}, <<<<<<<<< ----- You need a comma here :)
"closeTags": { "whenOpening": false, "whenClosing": false, "indentTags": [] }
JOSN对象属性需要用逗号分隔。这是JSLint在该错误中告诉您的内容。
更新
好的,我怀疑这一点,但认为你最初只粘贴了部分代码。您的preferences.json应该看起来像这样:
{
"closeBrackets": false,
"debug.showErrorsInStatusBar": true,
"closeTags": { "whenOpening": false, "whenClosing": false, "indentTags":[] }
}
所以你的问题是,所有首选项都需要进入主{}对象。没有主包装{},JSON无效。
将来我建议https://www.jsoneditoronline.org/验证和检查您的JSON字符串。