QT json对象解析
2021-09-10 本文已影响0人
c之气三段
json 数据文本:http://edu.jb51.net/json/json-json-arrays.html
QJsonObject point_body;
point_body.insert("aaa",11);
point_body.insert("bbb",true);
QJsonDocument v_doc = QJsonDocument(point_body);
qDebug()<< v_doc.toJson();
image.png
获取json数据
QString jsonstr = QStringLiteral("{\"aaa\" : 11,\"bbb\" : true}");
QJsonParseError jsonerror;
QJsonDocument json = QJsonDocument::fromJson(jsonstr.toStdString().c_str(), &jsonerror);
if (jsonerror.error == QJsonParseError::NoError && json.isObject())
{
QJsonObject jsonobj = json.object();
qDebug()<<jsonobj.keys();
qDebug()<<jsonobj.value(QStringLiteral("aaa")).toInt();
qDebug()<<jsonobj.value(QStringLiteral("bbb")).toBool();
}
image.png
json转qmap
static QMap<QString,QString> JsonToMapStringString(const QJsonValue &jsonValue)
{
QMap<QString,QString> res;
QJsonObject obj = jsonValue.toObject();
QStringList keys = obj.keys();
for(QString key:keys)
{
res.insert(key,obj.value(key).toString());
}
return res;
}
JsonToMapStringString(json.object());
json在文件中的格式
{" ":" "}
{" ":{" ":" "}}
qmap转json
QString json="{";
for(auto it=m_jsonPara.begin();it!=m_jsonPara.end();it++)
{
QString key = it.key();
QString value = it.value();
json.append("\""+key+"\":\""+value+"\",");
}
json = json.remove(json.length()-1,1);
json.append("}");
解析分组的json
如{" ":" "," ":{" ":" "}}
QJsonParseError jsonerror;
QJsonDocument json = QJsonDocument::fromJson(strJson.toStdString().c_str(), &jsonerror);
if(jsonerror.error == QJsonParseError::NoError&&json.isObject())
{
QJsonObject jsonobj = json.object();
for (auto iter = jsonobj.begin(); iter != jsonobj.end(); ++iter)
{
if(iter.value().isObject())
{
QJsonObject childJsonObj = iter.value().toObject();
for (auto childIter = childJsonObj.begin(); childIter != childJsonObj.end(); ++childIter)
{
JsonGroup jsonGroup;
jsonGroup.name = iter.key();
jsonGroup.map.insert(childIter.key(),childIter.value().toString());
m_jsonPara.append(jsonGroup);
}
}
else
{
JsonGroup jsonGroup;
jsonGroup.name = iter.key();
jsonGroup.value = iter.value().toString();
m_jsonPara.append(jsonGroup);
}
}
}