javascript - 尾随逗号会破坏 JSON 吗?

标签 javascript json

因此,我一直在阅读提议的 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/

相关文章:

javascript - 有没有办法使用 jQuery 或 Javascript 强制在 Firefox 中打开页面?

json - 将谷歌地图自动完成 api 与 select2 一起使用

python - 使用python从列表中提取Json数据

PHP 添加 mysql-results double 到数组。

javascript - 使用 javascript 获取 JSON 关键文本

javascript - 将图像叠加在图像之上

javascript - 如何在 html 中获取 JavaScript 函数

javascript - 子菜单部分显示

php - 预期的内容类型 text/json 得到 text/html

javascript - 将 json 字符串转换为适合 esri.geometry.Multipoint 的字符串