QJson的简单理解

附上链接
https://blog.csdn.net/weixin_46068274/article/details/127808897
实测
 //测试Json格式字符串
    //QJson封包代码
    QJsonObject sOne,sTwo,language,languages;
    sOne.insert("grade",10);
    sOne.insert("language","汉语");
    sTwo.insert("grade",7);
    sTwo.insert("language","英语");
    language.insert("serialone",sOne);
    language.insert("serialtwo",sTwo);
    languages.insert("languages",language);
    
    QJsonDocument json_document;
    json_document.setObject(languages);
    QByteArray byte_array = json_document.toJson(QJsonDocument::Compact);
    QString json_str(byte_array);
    qDebug()<<json_str;
    
    
    //解析
    QJsonParseError jsonError;
    QJsonDocument doc = QJsonDocument::fromJson(json_str.toUtf8(),&jsonError);
    if(jsonError.error != QJsonParseError::NoError&&!doc.isNull())
    {
        qDebug()<<"json格式错误"<<jsonError.error;
        return;
    }
    QJsonObject parse =doc.object();
    if(parse.contains("languages"))
    {
        qDebug()<<"languages";
        
    }
    QJsonValue value=parse.value("languages");
    if(value.type()  == QJsonValue::Object )
    {
        QJsonObject _parse = value.toObject();
        //以下两次解析
        QJsonValue _value  = _parse.value("serialone");
        if(_value.type() == QJsonValue::Object)
        {
            QJsonObject __parse=_value.toObject();
            QJsonValue grade = __parse.value("grade");
            int var = grade.toInt();
            qDebug()<<"grade"<<var;
            
            QJsonValue language = __parse.value("language");
            QString str = language.toString();
            qDebug()<<"language"<<str;
        }
        QJsonValue __value  = _parse.value("serialtwo");
        if(__value.type() == QJsonValue::Object)
        {
            QJsonObject __parse=__value.toObject();
            QJsonValue grade = __parse.value("grade");
            int var = grade.toInt();
            qDebug()<<"grade"<<var;
            
            QJsonValue language = __parse.value("language");
            QString str = language.toString();
            qDebug()<<"language"<<str;
        }
    }
    
    qDebug()<<"测试结束";
    封包过程
    键值键值键值toString
    拆包过程
    QJsonDocument doc = QJsonDocument::fromJson(json_str.toUtf8(),&jsonError);
    obj.value>toInt,toString,toChar
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值