• 请不要在回答技术问题时复制粘贴 AI 生成的内容
zhongrs232
V2EX  ›  程序员

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

  •  
  •   zhongrs232 · Jul 18, 2020 · 4825 views
    This topic created in 2298 days ago, the information mentioned may be changed or developed.

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

    10 replies  •  2020-07-18 21:17:54 +08:00
    vk42
    vk42
    Jul 18, 2020❤️2
    1
    标准明确规定不允许 trailing comma,所以不是逗号坑的你,是写了逗号的人坑的你
    ysc3839
    ysc3839
    Jul 18, 2020 via Android
    2
    没记错的话 jsoncpp 是可以配置接受这种格式的,甚至还能解析注释,是解析注释而不是忽略注释,可以保留注释重新生成 JSON 。
    zhongrs232
    zhongrs232
    OP
    Jul 18, 2020
    3
    主要是一个项目里同时用到了 cjson 和 jsoncpp,然后就被搞糊涂了
    opengps
    opengps
    Jul 18, 2020
    4
    cjson 的过度善意让你误解了 json
    Vegetable
    Vegetable
    Jul 18, 2020
    5
    比较严肃的库一半不会允许,但是有一些库会考虑这些事情,vscode 他们还专门弄了 JSON with comment,用其他库解析 vscode 的配置文件就被坑过,最后只能换成微软自己的 https://github.com/microsoft/node-jsonc-parser
    xwhxbg
    xwhxbg
    Jul 18, 2020
    6
    cjson 不是标准 json 吧
    Jirajine
    Jirajine
    Jul 18, 2020 via Android❤️1
    7
    json 只当数据交换格式(或者 protobuf ),绝对不要用作配置文件或其他可能需要手写的场景,不能注释、不能 trailing comma 太过恶心,需要手写的场景一律改用 yaml
    lovecy
    lovecy
    Jul 18, 2020
    8
    WEB 开发日常了
    Umenezumi
    Umenezumi
    Jul 18, 2020
    9
    用 JSON 就一定要按照标准来
    youxiachai
    youxiachai
    Jul 18, 2020
    10
    这就是没读标准文档,猛干的典范。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5564 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 02:04 · PVG 10:04 · LAX 18:04 · JFK 21:04
    ♥ Do have faith in what you're doing.