qt解析字符串转为json数据并解析

前言

在公司调用一个接口,我是用的是同事封装好的方法,方法的返回值是string,于是我就想到QString能否转为JSON数据,并对其进行解析。qt中通过QJsonDocument将QString转为JSON,只要QString能转为json,很多解析json数据的问题自然就好解决了。


案例:

{
  "StatusCode": 200,
  "ErrCode": 0,
  "Msg": "success",
  "Data": [
    {
      "SchoolID": "S-05061411",
      "schoolName": "东南大学",
      "SchoolType": 5
    }
  ]
}

代码如下:(解析出SchoolID和schoolName)

    QJsonParseError jsonError;
    QJsonDocument jsonDoc(QJsonDocument::fromJson(schoolInfo.toStdString().data(), &jsonError));	//schoolInfo为上面这串数据的QString类型的变量

    if(jsonError.error == QJsonParseError::NoError){
        QJsonObject rootObj = jsonDoc.object();
        
        //------读者根据实际情况修改
        QJsonArray data = rootObj.value("Data").toArray();		//获取Data,Data中是数组,所以toArray()
        for(int i=0;i<data.size();i++){		//解析数组
            QJsonObject  schoolInfo=data.at(i).toObject();		//数组中每一项又是一个json
            QString schoolId = schoolInfo.value("SchoolID").toString();	//解析字符串
            QString schoolName_1 = schoolInfo.value("schoolName").toString();	//解析中文
            int schoolType = schoolInfo.value("SchoolType").toInt();	//解析数字

        }
        //------读者根据实际情况修改
        
    }else {
        qDebug() << "json error!" << jsonError.errorString();	//json数据有问题
    }

注意:代码是没有问题的,如果报错的话可能是因为没有插入头文件


---

2022.8.1更新:

实际上c++通过jsoncpp库也能对json进行解析,特此补充

链接:c++json解析-jsoncpp的使用



码字不易,如果这篇博客对你有帮助,麻烦点赞收藏,非常感谢!有不对的地方,可以评论区交流。

  • 8
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值