本文主要是介绍Qt:QJson操作json文件(QJsonDocument、QJsonArray、QJsonObject),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、使用QJsonObject:
- #include <QApplication>
- #include <QDebug>
- #include <QJsonObject>
- #include <QJsonDocument>
-
- int main(int argc, char *argv[])
- {
- QApplication a(argc, argv);
-
-
- QJsonObject json;
- json.insert("name", QString("Qt"));
- json.insert("version", 5);
- json.insert("windows", true);
-
- QJsonDocument document;
- document.setObject(json);
- QByteArray byte_array = document.toJson(QJsonDocument::Compact);
- QString json_str(byte_array);
- qDebug()<<"生成Json:"<<json_str;
-
-
- QJsonParseError json_error;
- QJsonDocument parse_doucment = QJsonDocument::fromJson(byte_array, &json_error);
- if(json_error.error == QJsonParseError::NoError)
- {
- if(parse_doucment.isObject())
- {
- QJsonObject obj = parse_doucment.object();
- if(obj.contains("name"))
- {
- QJsonValue name_value = obj.take("name");
- if(name_value.isString())
- {
- QString name = name_value.toString();
-
- qDebug()<<"name "<<name;
- }
- }
- if(obj.contains("version"))
- {
- QJsonValue version_value = obj.take("version");
- if(version_value.isDouble())
- {
- int version = version_value.toVariant().toInt();
-
- qDebug()<<"version "<<version;
- }
- }
- if(obj.contains("windows"))
- {
- QJsonValue version_value = obj.take("windows");
- if(version_value.isBool())
- {
- bool flag = version_value.toBool();
- qDebug()<<"windows "<<flag;
- }
- }
- }
- }
-
- return a.exec();
- }
运行的结果:
二、使用QJsonArray:
- #include <QApplication>
- #include <QDebug>
- #include <QJsonArray>
- #include <QJsonValue>
- #include <QJsonDocument>
-
- int main(int argc, char *argv[])
- {
- QApplication a(argc, argv);
-
- QJsonArray json;
- json.insert(0, QString("Qt"));
- json.insert(1, QString("version"));
- json.insert(2, true);
-
- QJsonDocument document;
- document.setArray(json);
- QByteArray byte_array = document.toJson(QJsonDocument::Compact);
- QString json_str(byte_array);
- qDebug()<<"生成Json:"<<json_str;
-
- QJsonParseError json_error;
- QJsonDocument parse_doucment = QJsonDocument::fromJson(byte_array, &json_error);
- if (json_error.error == QJsonParseError::NoError)
- {
- if (parse_doucment.isArray())
- {
- QJsonArray array = parse_doucment.array();
- int size = array.size();
- for (int i=0; i < size; i++)
- {
- QJsonValue value = array.at(i);
- if (value.isString())
- {
- QString name = value.toString();
-
- qDebug()<<"数组索引:"<<i<<", name:"<<name;
- }
- else if (value.isBool())
- {
- bool flag = value.toBool();
-
- qDebug()<<"数组索引:"<<i<<", flag:"<<flag;
- }
- }
- }
- }
-
- return a.exec();
- }
运行结果:
这篇关于Qt:QJson操作json文件(QJsonDocument、QJsonArray、QJsonObject)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!