2024-10-02 02:34:56 发布
网友
手动生成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时,我使用的另一种方法是,总是在每个条目后附加一个逗号(如上所述),然后在末尾添加一个没有尾随逗号的伪条目(但这只是懒惰;->;)
不幸的是,不能很好地处理数组
简单、便宜、易于阅读,无论规格如何,都能正常工作
$delimiter = ''; for .... { print $delimiter.$whatever $delimiter = ','; }
给$delim的多余任务付出的代价很小。 如果没有显式循环,只有单独的代码片段,也同样有效
不可以。JSON规范在http://json.org处维护,不允许使用尾随逗号。据我所见,一些解析器在读取JSON字符串时可能会默默地允许它们,而其他解析器则会抛出错误。对于互操作性,您不应该包括它
可以重新构造上面的代码,在添加数组终止符时删除尾随的逗号,或者在项目之前添加逗号,跳过第一个项目的逗号
不幸的是the JSON specification不允许尾随逗号。有一些浏览器会允许它,但通常你需要担心所有的浏览器
通常,我会尝试扭转这个问题,并在实际值之前添加逗号,因此最终的代码如下所示:
for循环中额外的一行代码几乎不贵
当从某种形式的字典将结构输出到JSON时,我使用的另一种方法是,总是在每个条目后附加一个逗号(如上所述),然后在末尾添加一个没有尾随逗号的伪条目(但这只是懒惰;->;)
不幸的是,不能很好地处理数组
简单、便宜、易于阅读,无论规格如何,都能正常工作
给$delim的多余任务付出的代价很小。 如果没有显式循环,只有单独的代码片段,也同样有效
不可以。JSON规范在http://json.org处维护,不允许使用尾随逗号。据我所见,一些解析器在读取JSON字符串时可能会默默地允许它们,而其他解析器则会抛出错误。对于互操作性,您不应该包括它
可以重新构造上面的代码,在添加数组终止符时删除尾随的逗号,或者在项目之前添加逗号,跳过第一个项目的逗号
相关问题 更多 >
编程相关推荐