Qt Json 处理

chatgpt

#include <QJsonDocument>
#include <QJsonObject>
#include <QDebug>

// 从 JSON 字符串中解析数据
void parseJson(const QString& jsonString)
{
    // 将 JSON 字符串转换为 QJsonDocument 对象
    QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonString.toUtf8());

    // 判断转换是否成功
    if (!jsonDoc.isNull() && jsonDoc.isObject()) {
        // 获取 QJsonObject 对象
        QJsonObject jsonObj = jsonDoc.object();

        // 获取指定字段的值
        int id = jsonObj.value("id").toInt();
        QString name = jsonObj.value("name").toString();
        bool isEnabled = jsonObj.value("isEnabled").toBool();

        // 输出结果
        qDebug() << "id:" << id;
        qDebug() << "name:" << name;
        qDebug() << "isEnabled:" << isEnabled;
    } else {
        qDebug() << "JSON 格式错误";
    }
}

// 将数据转换为 JSON 字符串
void toJsonString()
{
    // 创建 QJsonObject 对象
    QJsonObject jsonObj;
    jsonObj.insert("id", 123);
    jsonObj.insert("name", "张三");
    jsonObj.insert("isEnabled", true);

    // 将 QJsonObject 对象转换为 QJsonDocument 对象
    QJsonDocument jsonDoc(jsonObj);

    // 将 QJsonDocument 对象转换为 JSON 字符串
    QString jsonString = QString::fromUtf8(jsonDoc.toJson());

    // 输出结果
    qDebug() << jsonString;
}

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

    // 解析 JSON 数据
    QString jsonString = "{\"id\":123, \"name\":\"张三\", \"isEnabled\":true}";
    parseJson(jsonString);

    // 将数据转换为 JSON 字符串
    toJsonString();

    return a.exec();
}

"{
	"type":"data",
	"timestamp":1647321600,
	"resourceType":"ip"#或端口,
	data:{
	"DeviceType":"预处理机",
	"status":"正在实验"
	
	}
}"

#include <QJsonDocument>
#include <QJsonObject>

// 假设您有一个QString对象jsonString,其中包含JSON数据

// 将JSON数据转换为QJsonDocument对象
QJsonDocument doc = QJsonDocument::fromJson(jsonString.toUtf8());

// 获取JSON对象
QJsonObject obj = doc.object();

// 获取"data"对象
QJsonObject dataObj = obj.value("data").toObject();

// 获取"status"字段
QString status = dataObj.value("status").toString();


posted @ 2023-03-20 13:38  simp00  阅读(42)  评论(0编辑  收藏  举报