手动生成JSON对象或数组时,通常在对象或数组的最后一项上留下逗号逗号会更容易。例如,从字符串数组输出的代码可能看起来像(在C ++中的伪代码中):
s.append("["); for (i = 0; i < 5; ++i) { s.appendF("\"%d\",", i); } s.append("]");
给你一个像
[0,1,2,3,4,5,]
可以吗?
不幸的是,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时,我使用的另一种替代方法是始终在每个条目之后添加逗号(如您在上面所做的那样),然后在没有尾随逗号的末尾添加一个虚拟条目(但是那只是懒惰;->)。
不幸的是,不适用于数组。