Qt QJson组装数据Sig传递

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

QJson是你选择的一种方式

组合:

cpp 复制代码
#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();
}

解析:

cpp 复制代码
#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生成,提供思路

相关推荐
十年编程老舅13 分钟前
二本计算机,毕业=失业?
c++·程序员·编程·秋招·c++项目·春招·qt项目
虾球xz1 小时前
游戏引擎学习第260天:在性能分析器中实现钻取功能
网络·c++·学习·游戏引擎
Yusei_05231 小时前
C++复习类与对象基础
c++
freshman_y2 小时前
Qt实现车载多媒体项目,包含天气、音乐、视频、地图、五子棋功能模块,免费下载源文件!
开发语言·qt
拾忆-eleven2 小时前
C++算法(19):整数类型极值,从INT_MIN原理到跨平台开发实战
数据结构·c++·算法
Hxyle3 小时前
c++设计模式
开发语言·c++·设计模式
www_pp_3 小时前
# 创建一个功能完备的计算器应用:使用PyQt5和Python
开发语言·python·qt
神仙别闹4 小时前
基于QT(C++)实现(图形界面)校园导览系统
数据库·c++·qt
明月看潮生4 小时前
青少年编程与数学 02-018 C++数据结构与算法 25课题、图像处理算法
c++·图像处理·算法·青少年编程·编程与数学
我是一只鱼02234 小时前
LeetCode算法题 (反转链表)Day17!!!C/C++
数据结构·c++·算法·leetcode·链表