QT{ "type": 2, "data": { "flag": "start" } }"反序列化拿到start
时间: 2023-07-21 11:59:52 浏览: 31
在QT中,可以使用`QJsonDocument`和`QJsonObject`来反序列化JSON数据并获取相应的值。以下是一个示例:
```cpp
#include <QCoreApplication>
#include <QJsonDocument>
#include <QJsonObject>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString jsonString = "{\"type\": 2, \"data\": {\"flag\": \"start\"}}";
// 将JSON字符串转换为JSON文档
QJsonDocument doc = QJsonDocument::fromJson(jsonString.toUtf8());
// 获取根对象
QJsonObject rootObj = doc.object();
// 获取data对象
QJsonObject dataObj = rootObj["data"].toObject();
// 获取flag值
QString flagValue = dataObj["flag"].toString();
qDebug() << flagValue;
return a.exec();
}
```
在上述示例中,我们将给定的JSON字符串转换为`QJsonDocument`,然后获取根对象和其中的`data`对象。接下来,我们使用键名`flag`来获取相应的值,并将其存储在`flagValue`变量中。最后,我们使用`qDebug()`打印输出`flagValue`。
运行该示例,将得到以下输出:
```
"start"
```
这是从给定的JSON中反序列化并提取到的`"flag"`值。