当前位置: 首页 > article >正文

Qt 创建一个json数组对象写入文档并从文档读出q

void createJsonArray()
{
    // 创建一个JSON数组
    QJsonArray jsonArray;

    // 创建一些JSON对象并添加到数组中
    for (int i = 0; i < 3; ++i) {
        QJsonObject jsonObject;
        jsonObject["key" + QString::number(i)] = "value" + QString::number(i);
        jsonArray.append(jsonObject);
    }

    // 将JSON数组转换为JSON文档并输出
    QJsonDocument jsonDoc(jsonArray);

    // QByteArray就是字符串类型
    QByteArray jsona = jsonDoc.toJson();

    // 把得到的json字符串写到磁盘文件中
    QString saveDefectPath = "D://result.json";
    qDebug() << __FUNCTION__ << __LINE__ << saveDefectPath;

    QFile file(saveDefectPath);
    file.open(QFile::WriteOnly);
    file.write(jsona);
    file.close();

    QFile open(saveDefectPath);
    file.open(QFile::ReadOnly);
    QByteArray all = file.readAll();

    // 把读出来的字符串转化成json的文档对象
    QJsonDocument doc = QJsonDocument::fromJson(all);

    if (doc.isArray()) {
        QJsonArray obj = doc.array();

        qDebug() << __FILE__ << __FUNCTION__ << __LINE__;

        // 循环获取数组中的每个元素
        for (int num = 0; num < obj.size(); ++num) {
            // 将数组中的每个元素转换成json obj
            QJsonObject subObj = obj.at(num).toObject();
            QStringList subKeys = subObj.keys();
            for (int var = 0; var < subKeys.size(); ++var) {
                QString key = subKeys.at(var);
                QJsonValue value = subObj.value(key);
                qDebug() << __FILE__ << __FUNCTION__ << __LINE__ << key << ":" << value.toString();
            }
        }
    }
}


http://www.kler.cn/a/292430.html

相关文章:

  • 【Linux网络编程】简单的UDP网络程序
  • HarmonyOS Next星河版笔记--界面开发(5)
  • leetcode hot100【LeetCode 236.二叉树的最近公共祖先】java实现
  • 生成自签名证书并配置 HTTPS 使用自签名证书
  • SSE与WebSocket与MQTT
  • RabbitMQ轻松构建高效可靠的消息队列系统
  • /单元测试
  • 前端Worker 的应用
  • 3. GIS后端工程师岗位职责、技术要求和常见面试题
  • 羽毛球运动员的运动姿势-标准动作识别判断
  • 无人机遥控器的材料组成!!!
  • 06_TensorFlow2数学计算大揭秘:让AI也学会‘加减乘除’,笑料不断,干货满满!
  • U盘未初始化困境与数据拯救
  • 骨传导耳机哪个牌子好用?精选五款黄金畅销骨传导机型测评
  • 1、.Net UI框架:Avalonia UI - .Net宣传系列文章
  • 为基于物联网的监测应用构建边缘云连续体架构
  • 学习node.js十三,文件的上传于下载
  • C++:STL简介
  • GFP-GAN容器构建说明
  • 数据分析面试常见50个问题及解答要点(五)
  • Curl命令详解
  • 【全志H616】【开源】 ARM-Linux 智能分拣项目:阿里云、网络编程、图像识别
  • SQL server数据库实现远程跨服务器定时同步传输数据
  • 举例说明,在python中怎样使用哈希算法?
  • vue3+ts封装类似于微信消息的组件
  • 车载测试协议:ISO-14229、ISO-15765、ISO-11898、ISO-26262【车企项目实操学习】②