Qt QJson が使用する

記事ディレクトリ

1 はじめに

QJson は、 Qt アプリケーション用の JSON 解析および生成ライブラリです。JSON (JavaScript Object Notation) は、可読性と拡張性に優れた軽量のデータ交換形式であり、Web アプリケーションでよく使用されます。QJson は JSON データを QJsonDocument オブジェクトに解析し、QJsonDocument オブジェクトを JSON データに変換できます。

♦ 一般的に使用される QJson クラスには次のものがあります。

QJsonDocument は、QJsonObject または QJsonArray オブジェクトを含む JSON ドキュメントを表します。

QJsonObject は、複数のプロパティを含む JSON オブジェクトを表します。各プロパティはキーと値のペアで表され、キーは文字列型で、値は数値、文字列、ブール値、配列、またはオブジェクトです。

QJsonArray は、複数の要素を含む JSON 配列を表します。各要素は、数値、文字列、ブール値、配列、オブジェクト、その他の型にすることができます。

♦ QJson を使用する手順は次のとおりです。

  1. ヘッダー ファイルをインポートします:
    #include
  2. JSON データを解析します:
    QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonData);
  3. JSON データのルート オブジェクトを取得します。
    QJsonObject jsonObj = jsonDoc.object();
  4. プロパティ値の取得:
    QString value = jsonObj.value(“key”).toString();
  5. JSONデータの生成:
    QJsonObject jsonObj;
    jsonObj.insert(“キー”, 値);
    QJsonDocument jsonDoc(jsonObj);
    QString jsonData = jsonDoc.toJson();

QJson を使用して JSON データを解析および生成する場合、JSON データの形式が標準に準拠していることを確認する必要があります。準拠していないと、解析が失敗したり、生成された JSON データが正しくない可能性があることに注意してください。

2. 簡単な例

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

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

    // 生成 JSON 数据
    QJsonObject jsonObj;
    jsonObj.insert("name", "Alice");
    jsonObj.insert("age", 25);
    QJsonArray hobbyArray;
    hobbyArray.append("reading");
    hobbyArray.append("music");
    jsonObj.insert("hobbies", hobbyArray);
    QJsonDocument jsonDoc(jsonObj);
    QString jsonData = jsonDoc.toJson(QJsonDocument::Compact);
    qDebug() << "生成的 JSON 数据:" << jsonData;

    // 解析 JSON 数据
    QJsonDocument jsonDoc2 = QJsonDocument::fromJson(jsonData.toUtf8());
    QJsonObject jsonObj2 = jsonDoc2.object();
    QString name = jsonObj2.value("name").toString();
    int age = jsonObj2.value("age").toInt();
    QJsonArray hobbyArray2 = jsonObj2.value("hobbies").toArray();
    QStringList hobbies;
    for (int i = 0; i < hobbyArray2.size(); i++) {
    
    
        hobbies.append(hobbyArray2.at(i).toString());
    }
    qDebug() << "解析出的数据:" << name << age << hobbies;

    return a.exec();
}

3. 結果

ここに画像の説明を挿入
最初に簡単に紹介し、後で使用して追加しましょう~

おすすめ

転載: blog.csdn.net/qq_16504163/article/details/130556600