Qt / C++ / C 中对 json 模式有什么支持

问题描述 投票:0回答:5

Qt 对 XML 的支持非常强大,甚至包括对 XML 模式验证的支持。

Qt 对 JSON 的支持似乎不太广泛。我找不到任何东西似乎可以确认或拒绝 Qt 中对 json-schema 或任何其他类型的 Json 模式验证 的支持。

有没有一种好的方法可以在 Qt / C++ 中验证 json?

编辑:要明确的是,这个问题集中在

Json 模式验证,而不仅仅是确认任意文档是否是有效的 Json。

json qt schema
5个回答
5
投票
Qt 5.8 似乎仍然没有 JSON Schema 验证...但是你可以找到一堆其他有趣的库。

JSON Schema 网站上列出了 4 个 C/C++ 库:

@Boris 提到的其他 JSON Schema Validator 项目可以在 github 或 bitbucket 上找到,其中:


3
投票
事实上,即使在 Qt 5.1 中,Qt 似乎也不支持 JSON 模式验证。由于自己编写会非常耗时,因此我建议:

  • 如果

    您作为开发人员会提供架构,则不要使用 JSON 架构验证进行验证,而是对解析的 JSON 执行硬编码验证(即,手动检查所需字段是否存在、是否存在)类型正确,并且在指定范围内)

  • 如果需要处理外部 JSON 模式(即,模式事先未知,可能是用户定义的),那么不要使用 Qt,而是使用独立的 C/C++ JSON 验证器,例如

    WJElement (链接在json-schema 网站)



0
投票
有一个免费的 C++ DLL,位于

https://github.com/Clemens-U/jsonbuddy,提供易于使用的 JSON 模式验证接口(我是开发人员)。此实施也符合 2020-12 草案。


-3
投票
我建议你使用

qt-json它有简单的验证,比如有效或无效。

bool ok; QtJson::JsonObject result = QtJson::parse(json, ok).toMap();
    
© www.soinside.com 2019 - 2024. All rights reserved.