为什么QJsonDocument::fromJson无法解析简单值?

ejk8hzay  于 5个月前  发布在  其他
关注(0)|答案(1)|浏览(54)
QJsonParseError err;
auto doc = QJsonDocument::fromJson ("true", err);
qInfo () << doc.isNull () << err;

字符串
输出为:true 5,表示解析错误,“5”表示QJsonParseError::IllegalValue
测试任何简单值(nulltruefalse,数字和字符串)也会发生同样的情况。
为什么它是一个错误,虽然解析的JSON是有效的?

1rhkuytd

1rhkuytd1#

是的,根据JSON标准,您正在测试的JSON值在技术上是有效的。但是,Qt的文档暗示QJsonDocument比JSON标准允许的更受限制:
JSON Support in Qt
有效的JSON文档是数组或对象,因此文档总是以方括号或花括号开头。
这意味着QJsonDocument::fromJson()不能解析简单的值,就像你试图做的那样。它只能解析数组[...]或对象{...}内部的值,例如:

auto doc = QJsonDocument::fromJson ("[true]", err);

个字符

相关问题