Qt support for XML非常强大,包括对XML模式验证的支持。
Qt Support for JSON似乎不那么广泛。我找不到任何东西似乎确认或拒绝支持Qt中的json-schema或任何其他类型的 Json模式验证。
有没有一种在Qt / C ++中验证json的声音方法?
编辑:要清楚,这个问题集中在 Json模式验证,而不仅仅是确认任意文档是否有效Json。
答案 0 :(得分:2)
实际上,即使在Qt 5.1中,似乎也没有Qt支持JSON Schema验证。由于编写自己的内容非常耗时,我建议:
如果您作为开发人员提供了Schema,则不要使用JSON Schema验证进行验证,而是对已解析的JSON执行硬编码验证(即,手动检查必填字段是否存在,类型是否正确,是否在指定的范围内)
如果需要处理外部JSON Schema(即,事先不知道Schema,可能是用户定义的),那么不要使用Qt,而是使用独立的C / C ++ JSON验证器,如WJElement (在json-schema网站上链接的那个)
答案 1 :(得分:1)
Qt 5.8似乎还没有JSON Schema验证......但你可以找到一堆其他有趣的库。
JSON Schema网站上列出了4个C / C ++库:
其他JSON Schema Validator项目可以在github或bitbucket上找到,其中包括:
答案 2 :(得分:0)
它存在http://qjson.sourceforge.net/,也不包括架构验证。
它在qtplayground中也存在Qtjsonstream,其中包括一些模式验证,但我没有使用它,所以我对此一无所知。
答案 3 :(得分:-1)
我建议您使用qt-json这是简单的验证,如有效与否。
bool ok;
QtJson::JsonObject result = QtJson::parse(json, ok).toMap();