手动生成 JSON 对象或数组时,在对象或数组的最后一项上留下逗号通常更容易。例如,从字符串数组输出的代码可能看起来像(在类似 C++ 的伪代码中):
s.append("[");
for (i = 0; i < 5; ++i) {
s.appendF("\"%d\",", i);
}
s.append("]");
给你一个类似的字符串
[0,1,2,3,4,5,]
这是否允许?
最佳答案
不幸的是the JSON specification不允许尾随逗号。有一些浏览器允许它,但通常您需要担心所有浏览器。
一般来说,我会尝试解决问题,并在实际值之前添加逗号,因此您最终会得到如下所示的代码:
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 输出结构时,我使用的另一种替代方法是始终在每个条目后附加一个逗号(如您在上面所做的那样),然后在末尾添加一个没有尾随的虚拟条目逗号(但这只是懒惰;->)。
不幸的是,它不适用于数组。
关于json - 您可以在 JSON 对象中使用尾随逗号吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/201782/