**
更新时间:2020-08-09
**
json所用到的头文件:
#include < QJsonDocument>
#include < QJsonParseError>
#include < QJsonObject>
#include < QJsonArray>
#include < QJsonValue>
拼接json数据
QJsonObject obj;
obj.insert("aa","123");
//带转义参数
QString strjson= QJsonDocument(obj).toJson(QJsonDocument::Compact);
qDebug()<<obj;
qDebug()<<strjson;
解析普通的json字符串:
QString str ="{\n \"aa\": \"123\"\n}\n";
QJsonParseError parseJsonErr;
QJsonDocument document = QJsonDocument::fromJson(str.toUtf8(),&parseJsonErr);
QJsonObject jsonObject = document.object();
qDebug()<<jsonObject;
qDebug()<<jsonObject["aa"].toString();
拼接带数组的json:
QJsonObject obj;
QJsonObject obj2;
obj2.insert("aa","123");
QJsonArray jsonArray;
jsonArray.insert(0,obj2);
obj.insert("aaa",jsonArray);
QString jsonStr = QJsonDocument(obj).toJson(QJsonDocument::Compact);
qDebug()<<obj;
qDebug()<<jsonStr;
解析带数组的json:
参考:解析json
QString str = "{ \"student\":[{\"Name\":\"ccf\",\"Math\":\"95\", \"Chinese\":\"84\"}, {\"Name\":\"zhangsan\",\"Math\":\"75\", \"Chinese\":\"70\"}]}";
QJsonParseError parseJsonErr;
QJsonDocument document = QJsonDocument::fromJson(str.toUtf8(),&parseJsonErr);
QJsonObject jsonObject = document.object();
qDebug()<<jsonObject;
if(jsonObject.contains(QStringLiteral("student")))
{
QJsonValue arrayValue = jsonObject.value(QStringLiteral("student"));
if(arrayValue.isArray())
{
QJsonArray array = arrayValue.toArray();
qDebug()<<array.size();
for(int i=0;i<array.size();i++)
{
QJsonValue iconArray = array.at(i);
QJsonObject icon = iconArray.toObject();
QString id = icon["Name"].toString();
qDebug()<<"id="<<id;
}
}
}
~持续更新