请写一个QT解析JSON数据的例程
时间: 2024-04-15 18:29:56 浏览: 35
当使用 Qt 进行 JSON 数据解析时,可以使用 `QJsonDocument` 和 `QJsonObject` 类来处理 JSON 数据。下面是一个简单的例程,演示如何使用 Qt 解析 JSON 数据:
```cpp
#include <QCoreApplication>
#include <QJsonDocument>
#include <QJsonObject>
#include <QDebug>
int main(int argc, char *argv[]) {
QCoreApplication a(argc, argv);
// 定义一个 JSON 字符串
QString jsonString = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
// 解析 JSON 字符串为 QJsonDocument 对象
QJsonDocument jsonDocument = QJsonDocument::fromJson(jsonString.toUtf8());
// 验证解析是否成功
if (jsonDocument.isNull()) {
qDebug() << "解析 JSON 失败";
return 1;
}
// 将 QJsonDocument 转换为 QJsonObject
QJsonObject jsonObject = jsonDocument.object();
// 提取 JSON 数据
QString name = jsonObject["name"].toString();
int age = jsonObject["age"].toInt();
QString city = jsonObject["city"].toString();
// 打印提取的数据
qDebug() << "姓名:" << name;
qDebug() << "年龄:" << age;
qDebug() << "城市:" << city;
return a.exec();
}
```
以上示例代码中,我们首先定义了一个 JSON 字符串。然后,使用 `QJsonDocument::fromJson()` 函数将 JSON 字符串解析为 `QJsonDocument` 对象。接下来,使用 `QJsonDocument` 对象的 `object()` 函数将其转换为 `QJsonObject`。然后,我们可以通过 `QJsonObject` 的键值对访问和提取 JSON 数据。最后,我们将提取的数据打印出来。
请确保在运行示例程序之前,将代码中的 JSON 字符串修改为你要解析的实际 JSON 数据。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)