被 json 最后一个逗号坑了, fk

2020-07-18 10:23:58 +08:00
 zhongrs232

cjson 可以解析尾随逗号,jsoncpp 不可以,parse()只返回第一个元素,蛋疼

3846 次点击
所在节点    程序员
10 条回复
vk42
2020-07-18 10:27:09 +08:00
标准明确规定不允许 trailing comma,所以不是逗号坑的你,是写了逗号的人坑的你
ysc3839
2020-07-18 10:31:52 +08:00
没记错的话 jsoncpp 是可以配置接受这种格式的,甚至还能解析注释,是解析注释而不是忽略注释,可以保留注释重新生成 JSON 。
zhongrs232
2020-07-18 10:45:43 +08:00
主要是一个项目里同时用到了 cjson 和 jsoncpp,然后就被搞糊涂了
opengps
2020-07-18 10:57:20 +08:00
cjson 的过度善意让你误解了 json
Vegetable
2020-07-18 11:06:39 +08:00
比较严肃的库一半不会允许,但是有一些库会考虑这些事情,vscode 他们还专门弄了 JSON with comment,用其他库解析 vscode 的配置文件就被坑过,最后只能换成微软自己的 https://github.com/microsoft/node-jsonc-parser
xwhxbg
2020-07-18 11:58:26 +08:00
cjson 不是标准 json 吧
Jirajine
2020-07-18 12:43:39 +08:00
json 只当数据交换格式(或者 protobuf ),绝对不要用作配置文件或其他可能需要手写的场景,不能注释、不能 trailing comma 太过恶心,需要手写的场景一律改用 yaml
lovecy
2020-07-18 17:05:52 +08:00
WEB 开发日常了
Umenezumi
2020-07-18 17:46:21 +08:00
用 JSON 就一定要按照标准来
youxiachai
2020-07-18 21:17:54 +08:00
这就是没读标准文档,猛干的典范。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/691069

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX