Qt使用Json

这篇具有很好参考价值的文章主要介绍了Qt使用Json。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

包含目录:

#include <QJsonObject>
#include <QJsonDocument>
#include <QByteArray>
#include <QFile>
#include <QJsonArray>

基本结构:
Qt使用Json,Qt,json
写json

QJsonObject studentobj;
    QJsonArray arrarydata;
    QJsonObject subdata;
    int id = 01;
    QString name = "zhangsan";
    QString gender = "Male";
   subdata.insert("id", QJsonValue(id));
   subdata.insert("name", QJsonValue(name));
   subdata.insert("gender", QJsonValue(gender));
   arrarydata.append(QJsonValue(subdata));
   id = 02;
   name = "lisi";
   gender = "Male";
   subdata.insert("id", QJsonValue(id));
   subdata.insert("name", QJsonValue(name));
   subdata.insert("gender", QJsonValue(gender));
   arrarydata.append(QJsonValue(subdata));
   studentobj.insert("Student", QJsonValue(arrarydata));
    //写入到文件,名字为info.json
    QJsonDocument docs(studentobj);
    QByteArray datas = docs.toJson();
    QFile files("student.json");
    bool oks = files.open(QIODevice::WriteOnly);
    if (oks)
    {
         files.write(datas);
         files.close();
    }
    else
    {
         qDebug() << "write error!" << endl;
    }

读json

QFile file("student.json");
    file.open(QIODevice::ReadOnly);
    QByteArray data = file.readAll();
    file.close();
    //解析
    QJsonParseError parseError;
    QJsonDocument doc = QJsonDocument::fromJson(data, &parseError);
    if (parseError.error != QJsonParseError::NoError) {
        qDebug() << "error";
        return;
    }
    QJsonObject obj = doc.object();
    if (obj.contains("Student"))
    {
        QJsonValue arrayTemp = obj.value("Student");
        QJsonArray array = arrayTemp.toArray();
        qDebug() << "array size: " << array.size();// size: 2
        QJsonValue sub = array.at(0);//因为里面就一个元素,如果有多个元素,可以通过array.size()遍历
        QJsonObject subObj = sub.toObject();
        int  id = subObj.value("id").toInt();
        QString name = subObj.value("name").toString();
        QString gender = subObj.value("gender").toString();
    }

Qt使用Json,Qt,json

复合结构:

	QJsonArray ArrayALL;
    QJsonObject studentobj;
    QJsonArray studentarrarydata;
    QJsonObject studentsubdata;
    int id = 01;
    QString name = "zhangsan";
    QString gender = "Male";
    studentsubdata.insert("id", QJsonValue(id));
    studentsubdata.insert("name", QJsonValue(name));
    studentsubdata.insert("gender", QJsonValue(gender));
    studentarrarydata.append(QJsonValue(studentsubdata));
    id = 02;
    name = "lisi";
    gender = "Male";
   studentsubdata.insert("id", QJsonValue(id));
   studentsubdata.insert("name", QJsonValue(name));
   studentsubdata.insert("gender", QJsonValue(gender));
   studentarrarydata.append(QJsonValue(studentsubdata));
   studentobj.insert("Student", QJsonValue(studentarrarydata));
   QJsonObject scoreobj;
   QJsonArray scorearrarydata;
   QJsonObject scoresubdata;
   id = 01;
   double math = 95;
   double physics = 85;
   double english = 66;
   scoresubdata.insert("ID", id);
   scoresubdata.insert("Math", math);
   scoresubdata.insert("Physics", physics);
   scoresubdata.insert("English", english);
   scorearrarydata.append(scoresubdata);
   id = 02;
   math = 85;
   physics = 95;
   english = 86;
   scoresubdata.insert("ID", id);
   scoresubdata.insert("Math", math);
   scoresubdata.insert("Physics", physics);
   scoresubdata.insert("English", english);
   scorearrarydata.append(scoresubdata);
   scoreobj.insert("Score", scorearrarydata);
   ArrayALL.append(studentobj);
   ArrayALL.append(scoreobj);
   QJsonDocument jsonDoc;
   jsonDoc.setArray(ArrayALL);
   QByteArray json = jsonDoc.toJson();
   //写文件
   QFile file0("test.json");
   file0.open(QIODevice::WriteOnly);
   file0.write(json);
   file0.close();

Qt使用Json,Qt,json
读文件文章来源地址https://www.toymoban.com/news/detail-691145.html

QFile file("info.json");
file.open(QIODevice::ReadOnly);
QByteArray data = file.readAll();
file.close();
//解析
QJsonParseError parseError;
QJsonDocument document= QJsonDocument::fromJson(data, &parseError);
if (parseError.error != QJsonParseError::NoError) {
    qDebug() << "error";
    return;
}
if(document.isArray())
{
            int Num = document.array().size();
             for(int i = 0; i <  Num ; ++i)
            {
                QJsonObject obj = document[i].toObject();
                QJsonValue value = obj.value("Student");
                int size = value.toArray().size();  //size=2
                	for(int j = 0 ; j < size;++j)
                    {
                        QJsonObject objData = value[j].toObject();
                       	int  id = objData .value("id").toInt();
                        ........
                    }
			}
            ......   
}

到了这里,关于Qt使用Json的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Qt+QtWebApp开发笔记(五):http服务器html中使用json触发ajax与后台交互实现数据更新传递

      前面完成了页面的跳转、登录,很多时候不刷新页面就想刷新局部数据,此时ajax就是此种技术,且是异步的。   本篇实现网页内部使用js调用ajax实现异步交互数据。   在js中使用 ajax是通过XMLHttpRequest来实现的。        链接:https://pan.baidu.com/s/1tJMTPhIIyVE40qWxRW

    2024年02月08日
    浏览(99)
  • Qt+JSON简单例子

    json.h json.cpp hello.json json.h json.cpp Cappuccino-jay【QT】Qt使用QJson生成json文件并保存 其实我也恋长安 QT5中如何将数据转换为JSON格式

    2024年02月08日
    浏览(35)
  • QT解析json数据

    将Json对象转换成map 将Json文件转换成Json对象,再转换成map

    2024年01月25日
    浏览(45)
  • 详解Qt中的JSON操作

    JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,因其简洁的结构、易读性以及与多种编程语言的良好兼容性,在现代Web服务、API交互以及数据持久化场景中得到了广泛应用。Qt作为一款功能强大的跨平台应用开发框架,自Qt 5.0起便内置了对JSON的支持,提供了方便

    2024年04月29日
    浏览(27)
  • qt学习:json数据文件读取写入

    目录 什么是json 基本格式 例子  解析json文件数据到界面上 组合json数据文档对象 json是一种轻量级的数据交互格式,简单来说,json就是一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互 以键值对的形式存放 键-----字符串 值------基本数据类型,字

    2024年01月24日
    浏览(39)
  • C++QT开发——Xml、Json解析

    可扩展标记语言,标准通用标记语言(Extensible Markup Language)的子集,简称XML,是一种定义电子文档结构和描述其内容的国际标准语言,被设计用来传输和存储数据。 可扩展标记语言与Access],Oracle]和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:

    2024年02月06日
    浏览(38)
  • Qt实践录:实现http服务并解析json协议

    本文主要记录在 Qt 中实现http服务的示例,包括解析json协议数据。 很早之前,对自己写的一个工程测试,需对接一个C++写的web服务,但局域网中尚未有,于是部署之,web服务使用了cgi技术,于是找了fastcgi等库和程序,最终和nginx一道合力完成部署。当时觉得比较麻烦,C++应该

    2024年02月12日
    浏览(37)
  • Qt 5.14.2 深度解析:打造高效JSON处理利器

    Qt 5.14.2 深度解析:打造高效JSON处理利器 参考资料 Qt官方文档:QJsonDocument Qt官方文档:QJsonObject Qt官方文档:QJsonArray Qt官方文档:QJsonValue 引言 在当今的软件开发世界中,JSON(JavaScript Object Notation)已经成为了数据交换的标准格式。Qt,作为一个跨平台的C++框架,自然也提供

    2024年03月10日
    浏览(43)
  • Python框架下的qt设计之JSON格式化转换小程序

    代码展示: 主程序代码: qt界面py代码 效果展示:

    2024年04月16日
    浏览(40)
  • 【Python】json 格式转换 ① ( json 模块使用 | 列表转 json | json 转列表 | 字典转 json | json 转字典 )

    json 格式 字符串 与 Python 中的 字典 dict 和 列表 list 变量 可以无缝转换 ; 调用 json.dumps 函数 可以将 Python 列表 / 字典 转为 json ; 调用 json.loads 函数 ,可以将 json 转为 python 列表 / 字典 ; 首先 , 导入 Python 内置的 json 模块 ; 然后 , 准备 python 数据 , 将数据放到 list 列表中 , 列表中

    2024年02月15日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包