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