1 はじめに
QJson は、 Qt アプリケーション用の JSON 解析および生成ライブラリです。JSON (JavaScript Object Notation) は、可読性と拡張性に優れた軽量のデータ交換形式であり、Web アプリケーションでよく使用されます。QJson は JSON データを QJsonDocument オブジェクトに解析し、QJsonDocument オブジェクトを JSON データに変換できます。
♦ 一般的に使用される QJson クラスには次のものがあります。
QJsonDocument は、QJsonObject または QJsonArray オブジェクトを含む JSON ドキュメントを表します。
QJsonObject は、複数のプロパティを含む JSON オブジェクトを表します。各プロパティはキーと値のペアで表され、キーは文字列型で、値は数値、文字列、ブール値、配列、またはオブジェクトです。
QJsonArray は、複数の要素を含む JSON 配列を表します。各要素は、数値、文字列、ブール値、配列、オブジェクト、その他の型にすることができます。
♦ QJson を使用する手順は次のとおりです。
- ヘッダー ファイルをインポートします:
#include - JSON データを解析します:
QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonData); - JSON データのルート オブジェクトを取得します。
QJsonObject jsonObj = jsonDoc.object(); - プロパティ値の取得:
QString value = jsonObj.value(“key”).toString(); - 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. 結果
最初に簡単に紹介し、後で使用して追加しましょう~