GitCode 开源社区
Qt:QJson操作json文件(QJsonDocument、QJsonArray、QJsonObject)
Qt:QJson操作json文件(QJsonDocument、QJsonArray、QJsonObject)
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json
免费下载资源
一、使用QJsonObject:
- #include <QApplication>
- #include <QDebug>
- #include <QJsonObject>
- #include <QJsonDocument>
- int main(int argc, char *argv[])
- {
- QApplication a(argc, argv);
- /*生成Json*/
- 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;
- /*解析Json*/
- 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);
- /*生成Json*/
- 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;
- /*解析Json*/
- 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();
- }
运行结果:
GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e
4 个月前
8c391e04
6 个月前
更多推荐
- 1.6w
- 0
- 0
- 0
扫一扫分享内容
- 分享
回到
顶部
顶部
所有评论(0)