json数据的分析
QJsonArray相当于一个json数组,形如这样
[
{
"name":"zhangsan",
"id":"002",
}
{
"name":"lisi",
"id":"001",
}
]
那么如何取出第一个大括号的内容呢? Qjsonarray jsonarray; jsonarray[0]即为第一个大括号的内容 返回值为QJsonValue,将value值转化为jsonobject对象,直接调用toobject方法
QJsonObject json= jsonarray[0].toObject()
QJsonDocument也是一个很好用的中间人,下述代码可直接将bytearray转为jsondocument.
QJsonDocument ::fromJson(const QByteArray &json, QJsonParseError *error = nullptr)
QjsonDocument jsondoc; jsondoc[value值]可以直接获取对应键值,可以一直解析到要解析的json对象在转化为json对象, 如jsondoc[value值][value值].toobject
将json数据写入文本文件参考一下代码
QJsonObject alljson;
QJsonDocument doc(alljson);
QByteArray array = doc.toJson();
QFile file(path);
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
{
return false;
}
else {
file.write(array);
file.close();
}
将json数据从文本文件中读出
QByteArray array;
QFile file(path);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
return false;
}
else {
array=file.readAll();
file.close();
}
QJsonDocument doc = QJsonDocument::fromJson(array);
QJsonObject alljson = doc.object();
|