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

for*_*ord 7 schema qt json

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

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

在 Qt/C++ 中是否有验证 json 的合理方法?

编辑:需要明确的是,这个问题以Json 模式验证为中心,而不仅仅是确认任意文档是否是有效的 Json。

jvt*_*del 5

Qt 5.8 still don't seem to have JSON Schema validation... But you can find a bunch of other interesting libraries.

4 C/C++ libraries are listed on JSON Schema website:

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

  • jv_json专门用于嵌入式应用程序。
  • libvariant还可以处理 YAML 和 PLIST 格式。


Bor*_*ein 3

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

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

  • 如果需要处理外部 JSON 模式(即,该模式事先未知,可能是用户定义的),那么不要使用 Qt,而是使用独立的 C/C++ JSON 验证器,例如WJElement(在 json-schema 网站上链接的那个) )