json - 这种 JSON 格式模式是否有名称,并带有前导逗号?
问题描述
我见过这样写的有效 JSON:
{ "version": 1
, "object":
{ "one": 1
, "two": 2
, "three": 3
, "four": 4,
, "five": 5
}
, "array":
[ 1
, 2
, 3
]
, "people":
[ { "firstname": "Jacob",
, "lastname": "Ford"
}
, { "firstname": "Marcin"
, "lastname": "Wichary"
}
]
}
我对主要优势的猜测是,添加或删除一行数据(除了少数例外)将被区分为:单行添加或删除。与更典型的 JSON 表示相反,带有尾随逗号,其中将项目附加到数组或对象的末尾需要编辑它之前的行以添加逗号。
这个 JSON 表示约定是否有名称,前导逗号,逗号与左/右括号放在同一列中?
解决方案
它似乎通常被称为逗号优先表示法(尽管有时也称为前导逗号表示法),并且不仅仅适用于JSON。SQL 命令是另一个很好的例子。
npm 的代码风格指南要求它用于所有逗号分隔的列表。Airbnb的禁止它。
我对这种风格产生更清晰差异的假设是正确的。然而,有些人更喜欢通过使用尾随逗号来实现相同的目标,但总是在最后一项之后包含一个(不必要的)悬空逗号。前面提到的 Airbnb 代码风格指南,在禁止逗号优先符号之后的部分中,需要在列表后悬挂逗号,明确用于更清晰的差异。
支持者指出的另一个优点是,印刷错误在逗号优先表示法中变得更加明显。npm 的发明者的这个要点经常被引用,我将在此摘录:
// error in standard style
var a = "ape",
b = "bat",
c = "cat",
d = "dog"
e = "elf",
f = "fly",
g = "gnu",
h = "hat",
i = "ibu";
// error in comma-first style
var a = "ape"
, b = "bat"
, c = "cat"
, d = "dog"
e = "elf"
, f = "fly"
, g = "gnu"
, h = "hat"
, i = "ibu"
;
推荐阅读
- git - 我正在尝试放置一个 git pre-commit 挂钩,它可以验证我的功能文件的标签
- pandas - 系列中的元素的索引,其中累积的一些等于或大于 10
- flutter - Provider的consumer widget中使用child的用例是什么
- python - Python argparse 帮助选项在使用 parse_known_args() 时不会显示所有参数
- android-jetpack - 在 Jetpack Compose 中按下后退按钮时滚动位置丢失
- ios - 如何在 SwiftUI 中为具有属性的 VStack 创建扩展?
- react-native - 视图不会环绕文本
- server - change-master-password no funciona en payara 5
- vue.js - 如何在 Vue.js 中突出显示组件和取消突出显示其他组件
- android - 单击子元素时,布局上的监听器上的android ontouch不会触发