当手动生成JSON对象或数组时,通常更容易在对象或数组的最后一项上留下逗号。例如,从字符串数组输出的代码可能像这样(在c++中像伪代码):
s.append("[");
for (i = 0; i < 5; ++i) {
s.appendF("\"%d\",", i);
}
s.append("]");
给你一个字符串
[0,1,2,3,4,5,]
这是允许的吗?
当手动生成JSON对象或数组时,通常更容易在对象或数组的最后一项上留下逗号。例如,从字符串数组输出的代码可能像这样(在c++中像伪代码):
s.append("[");
for (i = 0; i < 5; ++i) {
s.appendF("\"%d\",", i);
}
s.append("]");
给你一个字符串
[0,1,2,3,4,5,]
这是允许的吗?
当前回答
String l = "[" + List<int>.generate(5, (i) => i + 1).join(",") + "]";
其他回答
PHP程序员可能需要检查implode()。它接受一个数组,使用字符串将其连接起来。
从医生那里…
$array = array('lastname', 'email', 'phone');
echo implode(",", $array); // lastname,email,phone
有趣的是,C和c++(我认为还有c#,但我不确定)都特别允许后面有逗号——原因正是:它使以编程方式生成列表更容易。不知道为什么JavaScript没有效仿他们。
我通常循环遍历数组,并在字符串中的每个条目后附加一个逗号。循环结束后,我再次删除最后一个逗号。
也许不是最好的方法,但比每次检查它是否是循环中的最后一个对象要便宜一些。
如上所述,这是不允许的。但在JavaScript中,这是:
var a = Array()
for(let i=1; i<=5; i++) {
a.push(i)
}
var s = "[" + a.join(",") + "]"
(在Firefox, Chrome, Edge, IE11中工作良好,并且在IE9, 8,7,5中没有let)
不。https://json.org中的“铁路图”是规范的精确翻译,并明确表示a,总是在值之前,而不是直接在值之前]:
或}: