Qt QJson组装数据Sig传递

有时候界面输入的值,不想创建结构体,那么直接用QString类型传输,更便捷方便,速度更快

QJson是你选择的一种方式

组合:

#include <QCoreApplication>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    // 创建JSON对象
    QJsonObject jsonObject;
    jsonObject["name"] = "John Doe";
    jsonObject["age"] = 30;

    // 创建JSON数组
    QJsonArray jsonArray;
    jsonArray.append("apple");
    jsonArray.append("banana");
    jsonArray.append("cherry");

    // 将数组添加到对象中
    jsonObject["fruits"] = jsonArray;

    // 创建JSON文档
    QJsonDocument jsonDoc(jsonObject);

    // 将JSON文档转换为字符串
    QString jsonString = jsonDoc.toJson(QJsonDocument::Indented);
    qDebug() << "JSON Data:" << jsonString;

    return a.exec();
}

解析:

#include <QCoreApplication>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    // JSON字符串
    QString jsonString = R"(
    {
        "name": "John Doe",
        "age": 30,
        "fruits": ["apple", "banana", "cherry"]
    })";

    // 将JSON字符串解析为JSON文档
    QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonString.toUtf8());

    // 检查解析是否成功
    if (jsonDoc.isNull() || !jsonDoc.isObject()) {
        qWarning() << "Failed to parse JSON";
        return -1;
    }

    // 获取JSON对象
    QJsonObject jsonObject = jsonDoc.object();

    // 访问数据
    QString name = jsonObject["name"].toString();
    int age = jsonObject["age"].toInt();
    QJsonArray fruitsArray = jsonObject["fruits"].toArray();

    qDebug() << "Name:" << name;
    qDebug() << "Age:" << age;
    qDebug() << "Fruits:";

    for (const QJsonValue &value : fruitsArray) {
        qDebug() << " -" << value.toString();
    }

    return a.exec();
}

AI生成,提供思路

相关推荐

  1. Qt QJson组装数据Sig传递

    2024-07-18 17:28:05       19 阅读
  2. 组件传递数据——$emit(子传父)

    2024-07-18 17:28:05       52 阅读
  3. Vue2 父子组件进行数据传递

    2024-07-18 17:28:05       17 阅读
  4. vue父组件如何向子组件传递数据

    2024-07-18 17:28:05       29 阅读
  5. Vue3如何实现组件之间的数据传递

    2024-07-18 17:28:05       54 阅读
  6. 【react】使用context进行跨级组件数据传递

    2024-07-18 17:28:05       51 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 17:28:05       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 17:28:05       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 17:28:05       57 阅读
  4. Python语言-面向对象

    2024-07-18 17:28:05       68 阅读

热门阅读

  1. Fundamentals of Computer Science LCSCI4208

    2024-07-18 17:28:05       19 阅读
  2. 河南萌新联赛2024第(一)场:河南农业大学

    2024-07-18 17:28:05       27 阅读
  3. Unity:UI进入离开事件

    2024-07-18 17:28:05       19 阅读
  4. opencv—常用函数学习_“干货“_6

    2024-07-18 17:28:05       18 阅读
  5. web前端 Vue 框架面试120题(四)

    2024-07-18 17:28:05       18 阅读
  6. 富格林:可信办法阻挠虚假受骗

    2024-07-18 17:28:05       19 阅读
  7. ClickHouse中使用UNION

    2024-07-18 17:28:05       20 阅读
  8. vue3项目中pinia的用法详解(值得收藏)

    2024-07-18 17:28:05       20 阅读
  9. jd-gui反编译出现中文乱码问题

    2024-07-18 17:28:05       18 阅读
  10. CL11命令行解析使用实例

    2024-07-18 17:28:05       19 阅读
  11. PCB的层叠结构

    2024-07-18 17:28:05       18 阅读
  12. vim+cscope+ctags

    2024-07-18 17:28:05       23 阅读