QT-JSON相关API/QJsonDocument/QJsonObject

QJsonObject类的相关操作

格式化排版

下面的代码将一个符合JSON格式的字符串,格式化成具有缩进格式排版的字符串,代码如下

cpp 复制代码
#include <QJsonDocument>
#include <QDebug>

int main(int argc, char *argv[])
{
    QJsonDocument doc = QJsonDocument::fromJson("{\"descript\": \"我爱武汉的妹子\",\"mark\": \"最好是汉阳区的\"}");
    QString str=doc.toJson();
    qDebug()<<str;
    return 0;
}

创建JSON对象,使用字符串

下面的代码使用一个JSON格式的字符串创建了一个JSON对象

cpp 复制代码
int main(int argc, char *argv[])
{
    QByteArray jsonStr="{\"descript\": \"我爱武汉的妹子\",\"mark\": \"最好是汉阳区的\"}";
    QJsonDocument doc = QJsonDocument::fromJson(jsonStr);
    QJsonObject resultObjet=doc.object();
    return 0;
}

创建JSON对象,使用标准JSON对象

下面的代码创建了一个JSON对象

cpp 复制代码
#include <QJsonObject>

int main(int argc, char *argv[])
{
    QJsonObject jsonObj;
    jsonObj.insert("descript","我爱武汉的妹子");
    jsonObj.insert("mark","最好是汉阳区的");
    return 0;
}

获取JSON对象中的值,非数组

下面的代码创建了一个JSON对象,并且打印出我爱武汉的妹子

cpp 复制代码
int main(int argc, char *argv[])
{
    QJsonObject jsonObj;
    jsonObj.insert("descript","我爱武汉的妹子");
    jsonObj.insert("mark","最好是汉阳区的");

    QJsonValue value=jsonObj.value("descript");
    QString strValue=value.toString();
    qDebug()<<strValue;
    // 或者如下
    qDebug()<<jsonObj["descript"].toString();
    return 0;
}

获取JSON对象中的值,数组

下面的代码创建了一个包含JSON数组的对象,并且循环打印出武汉汉阳区马鹦路

cpp 复制代码
int main(int argc, char *argv[])
{
    QJsonObject jsonObj;
    jsonObj.insert("city","武汉");
    QJsonArray array;
    array.append("武汉");
    array.append("汉阳区");
    array.append("马鹦路");
    jsonObj.insert("locations",array);

    QJsonArray locations=jsonObj.value("locations").toArray();
    // 打印每个数组元素的值
    for (const auto& element : locations) {
        qDebug() << element.toString();
    }
    // 或者如下
    qDebug()<<locations.at(0).toString();
    qDebug()<<locations.at(1).toString();
    qDebug()<<locations.at(2).toString();
    return 0;
}
相关推荐
A.A呐6 小时前
【QT第三章】常用控件2
开发语言·qt
笨笨马甲7 小时前
Qt 实现三维坐标系的方法
开发语言·qt
谁动了我的代码?7 小时前
VNC中使用QT的GDB调试,触发断点时与界面窗口交互导致整个VNC冻结
开发语言·qt·svn
肖恭伟8 小时前
QtCreator Linux ubuntu24.04问题集合
linux·windows·qt
vegetablesssss9 小时前
QT国际化翻译
qt
困死,根本不会9 小时前
Qt Designer 基础操作学习笔记
开发语言·笔记·qt·学习·microsoft
喜欢喝果茶.10 小时前
Qt MQTT部署
开发语言·qt
浅碎时光80710 小时前
Qt 窗口 (菜单 工具栏 状态栏 浮动窗口 对话框)
qt
GIS阵地10 小时前
一场由Qt5 painter的drawRect引起的血雨腥风
开发语言·qt·gis·qgis
娇娇yyyyyy10 小时前
QT编程(8): qt自定义菜单项
qt·microsoft