QT开发中文网

qt解析json,带数组的

在Qt中解析带有数组的JSON可以使用QJsonDocument和QJsonArray类。以下是一个示例代码,展示了如何解析带有数组的JSON数据:

#include <QCoreApplication>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication app(argc, argv);

    // JSON字符串
    QString jsonString = "{\"name\": \"John\", \"age\": 30, \"hobbies\": [\"reading\", \"coding\", \"sports\"]}";

    // 解析JSON字符串为QJsonDocument对象
    QJsonParseError error;
    QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonString.toUtf8(), &error);
    
    if (error.error != QJsonParseError::NoError) {
        qWarning() << "Failed to parse JSON:" << error.errorString();
        return -1;
    }

    // 检查是否为Object类型
    if (!jsonDoc.isObject()) {
        qWarning() << "JSON is not an object";
        return -1;
    }

    // 获取根节点对象
    QJsonObject jsonObj = jsonDoc.object();

    // 获取name和age字段值
    QString name = jsonObj["name"].toString();
    int age = jsonObj["age"].toInt();

    qDebug() << "Name:" << name;
    qDebug() << "Age:" << age;

     // 获取hobbies字段值(数组)
     if(jsonObj.contains("hobbies") && jsonObj["hobbies"].isArray()){
         QJsonArray hobbiesArray = jsonObj["hobbies"].toArray();
         QStringList hobbiesList;

         for(const auto& hobby : hobbiesArray){
             hobbiesList.append(hobby.toString());
         }

         qDebug() << "Hobbies:" << hobbiesList;
     }

    return app.exec();
}

以上代码将会输出以下结果:

Name: "John"
Age: 30
Hobbies: ("reading", "coding", "sports")

这个示例演示了如何解析带有数组的JSON数据,并将数组中的值提取出来。你可以根据自己的需要对示例代码进行修改和扩展。同样,记得在项目文件(.pro)中添加 QT += core 来引入必要的模块。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=10718

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?