QJsonObject类的相关操作
格式化排版
下面的代码将一个符合JSON格式的字符串,格式化成具有缩进格式排版的字符串,代码如下
#include <QJsonDocument>
#include <QDebug>
int main(int argc, char *argv[])
{
QJsonDocument doc = QJsonDocument::fromJson("{\"descript\": \"我爱武汉的妹子\",\"mark\": \"最好是汉阳区的\"}");
QString str=doc.toJson();
qDebug()<<str;
return 0;
}
创建JSON对象,使用字符串
下面的代码使用一个JSON格式的字符串创建了一个JSON对象
int main(int argc, char *argv[])
{
QByteArray jsonStr="{\"descript\": \"我爱武汉的妹子\",\"mark\": \"最好是汉阳区的\"}";
QJsonDocument doc = QJsonDocument::fromJson(jsonStr);
QJsonObject resultObjet=doc.object();
return 0;
}
创建JSON对象,使用标准JSON对象
下面的代码创建了一个JSON对象
#include <QJsonObject>
int main(int argc, char *argv[])
{
QJsonObject jsonObj;
jsonObj.insert("descript","我爱武汉的妹子");
jsonObj.insert("mark","最好是汉阳区的");
return 0;
}
获取JSON对象中的值,非数组
下面的代码创建了一个JSON对象,并且打印出我爱武汉的妹子
int main(int argc, char *argv[])
{
QJsonObject jsonObj;
jsonObj.insert("descript","我爱武汉的妹子");
jsonObj.insert("mark","最好是汉阳区的");
QJsonValue value=jsonObj.value("descript");
QString strValue=value.toString();
qDebug()<<strValue;
// 或者如下
qDebug()<<jsonObj["descript"].toString();
return 0;
}
获取JSON对象中的值,数组
下面的代码创建了一个包含JSON数组的对象,并且循环打印出武汉
,汉阳区
,马鹦路
int main(int argc, char *argv[])
{
QJsonObject jsonObj;
jsonObj.insert("city","武汉");
QJsonArray array;
array.append("武汉");
array.append("汉阳区");
array.append("马鹦路");
jsonObj.insert("locations",array);
QJsonArray locations=jsonObj.value("locations").toArray();
// 打印每个数组元素的值
for (const auto& element : locations) {
qDebug() << element.toString();
}
// 或者如下
qDebug()<<locations.at(0).toString();
qDebug()<<locations.at(1).toString();
qDebug()<<locations.at(2).toString();
return 0;
}