Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何解析QT中包含对象的Json字符串_C++_Qt - Fatal编程技术网

C++ 如何解析QT中包含对象的Json字符串

C++ 如何解析QT中包含对象的Json字符串,c++,qt,C++,Qt,我得到了一个JSON字符串格式 "{\"bookHeavyInfo\":{\"Qty\":100},\"bookLightInfo\":{\"Qty\":2}}" 如何提取bookHeavyInfo 我在试着做一些事情,比如 void parseJsonString(QString str) { QJsonDocument jsonResponse = QJsonDocument::fromJson(str.toUtf8()); QJsonObject jsonObject = jso

我得到了一个JSON字符串格式

"{\"bookHeavyInfo\":{\"Qty\":100},\"bookLightInfo\":{\"Qty\":2}}"
如何提取
bookHeavyInfo
我在试着做一些事情,比如

void parseJsonString(QString str)
{

 QJsonDocument jsonResponse = QJsonDocument::fromJson(str.toUtf8());

 QJsonObject jsonObject = jsonResponse.object();

 QString bookHeavyInfo= jsonObject["bookHeavyInfo"].toString();

}

我无法获取
bookHeavyInfo
的值,更具体地说,如何获取数量的值。请建议注意
bookHeavyInfo
是一个对象,因此不能使用
toString
方法

试试这个:

QString str = "{\"bookHeavyInfo\":{\"Qty\":100},\"bookLightInfo\":{\"Qty\":2}}";
QJsonDocument jsonResponse = QJsonDocument::fromJson(str.toUtf8());

QJsonObject jsonObject = jsonResponse.object();

QJsonObject bookHeavyInfo = jsonObject["bookHeavyInfo"].toObject();

int qty = bookHeavyInfo["Qty"].toInt();
代码究竟是如何失败的?将
QJsonParseError
的地址传递给
fromJson
,然后查看上面的内容。
jsonResponse.isObject()
的结果是什么?
jsonObject[“bookHeavyInfo”]
(转换为字符串之前)的返回值是多少