一尘不染

您可以在JSON对象中使用尾随逗号吗?

json

手动生成JSON对象或数组时,通常在对象或数组的最后一项上留下逗号逗号会更容易。例如,从字符串数组输出的代码可能看起来像(在C ++中的伪代码中):

s.append("[");
for (i = 0; i < 5; ++i) {
    s.appendF("\"%d\",", i);
}
s.append("]");

给你一个像

[0,1,2,3,4,5,]

可以吗?


阅读 268

收藏
2020-07-27

共1个答案

一尘不染

不幸的是,JSON规范不允许以逗号结尾。有几种浏览器可以使用它,但是通常您需要担心所有浏览器。

通常,我会尝试解决问题,并在实际值前添加逗号,因此最终得到的代码如下所示:

s.append("[");
for (i = 0; i < 5; ++i) {
  if (i) s.append(","); // add the comma only if this isn't the first entry
  s.appendF("\"%d\"", i);
}
s.append("]");

for循环中多余的一行代码几乎不昂贵…

从某种形式的字典将结构输出到JSON时,我使用的另一种替代方法是始终在每个条目之后添加逗号(如您在上面所做的那样),然后在没有尾随逗号的末尾添加一个虚拟条目(但是那只是懒惰;->)。

不幸的是,不适用于数组。

2020-07-27