因此,我一直在阅读提议的 JavaScript 功能,我担心的一个是对象文字和数组中的尾随逗号支持。
对于参数,尾随逗号在这里不相关,所以让我们忽略它。我了解版本控制的好处,但我担心它将如何对 JSON 使用react。
const arr = [
'red',
'green',
'blue',
];
这将变得有效。
但是当你返回 JSON 语法时会发生什么? RFC 支持 JSON,因此我怀疑 JSON 是否会支持尾随逗号。也许有一天……
但是 JavaScript 将如何处理返回这样的东西:
const jsonReturn = [{
"derp":1
}, {
"foo":"bar"
}, {
"slide":true,
},];
如果 header 内容类型为 JSON,是否会在内部删除尾随逗号,或者尾随逗号会破坏所有内容?
最佳答案
您不会遇到任何问题,因为 JSON 和 JS 源代码彼此无关。
JSON 不(并且为了举例起见,也不会)支持尾随逗号。 The current JSON spec清楚地表明逗号只能出现在对象或数组中的值之间。
如果 JS 确实引入了对尾随逗号的支持,则对象的源表示 和序列化的版本在很大程度上是无关的。今天的大多数浏览器都会接受尾随逗号,但所有逗号在实际对象(dict/hash 或 struct)表示中都被丢弃:
> var foo = {bar: 1, baz: 2,};
< undefined
> foo
< Object {bar: 1, baz: 2}
即使在今天,序列化带有尾随逗号的对象也能正常工作:
> JSON.stringify({bar: 1, baz: 2,})
< "{"bar":1,"baz":2}"
逗号仅用于解析源,不存在于运行时的对象表示中。
关于javascript - 尾随逗号会破坏 JSON 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36265330/