繁体   English   中英

尾随逗号会破坏JSON吗?

[英]Will trailing commas break JSON?

所以我一直在阅读提议的JavaScript功能,我关注的是在对象文字和数组中使用逗号支持。

对于参数,尾随逗号在这里不相关,所以让我们忽略它。 我理解版本控制的好处,但我担心它会如何对JSON做出反应。

const arr = [
    'red',
    'green',
    'blue',
];

这将变得有效。

但是当你返回JSON语法时会发生什么? RFC支持JSON,所以我怀疑JSON是否会支持尾随逗号。 或许有一天..

但JavaScript将如何处理返回类似于:

const jsonReturn = [{
    "derp":1
}, {
    "foo":"bar"
}, {
    "slide":true,
},];

如果标题内容类型是JSON还是尾随逗号会破坏所有内容,是否会在内部删除尾随逗号?

你不会遇到任何问题,因为JSON和JS源彼此无关。

JSON没有(并且为了示例,不会)支持尾随逗号。 当前的JSON规范清楚地表明,逗号可能只出现在对象或数组中的值之间。

如果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}"

逗号仅用于解析源,并且不存在于运行时的对象表示中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM