JSON对象的尾随逗号有什么问题
通常我会创建如下有效的JSON对象:JSON对象的尾随逗号有什么问题,json,visual-studio-code,Json,Visual Studio Code,通常我会创建如下有效的JSON对象: { hasPermission: true, notificationStatusId: 1 }; { hasPermission: true, notificationStatusId: 1, }; 在VSCode上,当保存文件时,有时会在最后一个属性后自动添加尾随逗号,如下所示: { hasPermission: true, notificationStatusId: 1 }; { hasPermission: true
{
hasPermission: true,
notificationStatusId: 1
};
{
hasPermission: true,
notificationStatusId: 1,
};
在VSCode上,当保存文件时,有时会在最后一个属性后自动添加尾随逗号,如下所示:
{
hasPermission: true,
notificationStatusId: 1
};
{
hasPermission: true,
notificationStatusId: 1,
};
事实上,我不是在问如何禁用这种行为,我知道怎么做。我在问VSCode自动添加尾随逗号的功能的原因是什么?首先,确保文件的设置仅为
JSON
(而不是JSON加注释或JSON5
或JSON
)。这个
语言模式显示在状态栏的右下角:
VS Code将在JSON
语言模式下警告您跟踪命令
至于插入尾随逗号的原因,这可能是由您的一个扩展引起的,因为VS代码在默认情况下不应该这样做。如果您使用的是一些类似于细针的更漂亮的、最近尾随逗号的默认值在新版本中从“无”更改为“es5”,请尝试查看扩展以确定是哪个扩展导致了此问题
要解决这个问题,你必须改变你的短绒配置
如果是prettier,请创建一个包含内容的文件.prettierrc.json
{"trailingComma": "none"}
后面的逗号可能是由代码格式化程序添加的。这是javascript的建议,而JSON则不允许:
尾随逗号(有时称为“最终逗号”)可以
在向中添加新元素、参数或特性时非常有用
JavaScript代码。如果要添加新属性,可以添加新属性
行,而不修改以前的最后一行(如果该行已存在)
使用尾随逗号。这使得版本控制差异更为清晰和有效
编辑代码可能不那么麻烦
自
开始,然后将它们添加到对象文本(ECMAScript 5)和
最近(ECMAScript 2017)更新了函数参数
然而,JSON不允许尾随逗号
这不是JSON,后面的逗号会有问题,而是JS。大概有什么东西(更漂亮的或其他的linter)被配置为在保存时格式化。这是有效的哦,但是后面还有一个分号。。。这不是有效的json(这甚至不是有效的js)