在QT5以前,QT是不自带json解析的,对于老项目,要解析json就得借助第三方库了。
教程网上有不赘述了。直接上代码。
就4个主要功能:
1.声明dom
2.解析json格式
3.查询key值
4.根据key值查vaule
对应的示例代码:
QT写的用rapidjson解析json字符串的程序-C++文档类资源-CSDN下载
#include "rapidjson/writer.h"
#include "rapidjson/reader.h"
#include "rapidjson/document.h"
#include "rapidjson/stringbuffer.h"
#include "rapidjson/error/error.h"
#include "rapidjson/error/en.h"
void json::parseJsonResult(QByteArray & replyBytes)
{
rapidjson::Document jsondom; //1.声明dom
rapidjson::Document::AllocatorType& allocator = jsondom.GetAllocator();
const char* jsondata;
jsondata = replyBytes.data();
jsondom.Parse(jsondata); //2.解析成json格式
if(jsondom.HasParseError())
{
qDebug()<<("parse error: (%d:%d)%s\n", jsondom.GetParseError(), jsondom.GetErrorOffset(), GetParseError_En(jsondom.GetParseError()));
return;
}
else
{
if(jsondom.HasMember("name")) //3.查询key值
{
QString strvalue = jsondom["name"].GetString();//4.根据key值查value值
}
}
}