QtのJSONサポート

QtはJSONデータを扱うためのサポートを提供しています。JSONはJavascriptから派生したオブジェクトデータをエンコードするフォーマットですが、現在ではインターネット上のデータ交換フォーマットとして広く使われています。

QtのJSONサポートは、JSONデータを解析、変更、保存するための使いやすいC++ APIを提供します。

JSONデータフォーマットの詳細については、json.orgや RFC 4627を参照してください。

概要

JSONは、構造化データを格納するフォーマットです。6つの基本データ型がある:

  • ブール
  • double
  • 文字列
  • 配列
  • オブジェクト
  • ヌル

値は、上記のいずれかの型を持つことができる。ブーリアン値は、JSONではtrueまたはfalseという文字列で表されます。JSONでは数値の有効範囲は明示的に指定されていませんが、Qtでのサポートはdoubleの有効範囲と精度に限定されています。文字列は、有効なUnicode文字列であれば何でもかまいません。配列は値のリストであり、オブジェクトはキーと値のペアのコレクションです。オブジェクトのキーはすべて文字列で、重複するキーを含むことはできません。

JSONのテキスト表現では、配列を角括弧([ ... ])で囲み、オブジェクトを中括弧({ ... })で囲みます。配列とオブジェクトの項目はカンマで区切られる。オブジェクトのキーと値の区切り記号はコロン(:)です。

人物、年齢、住所、電話番号をエンコードした単純なJSONドキュメントは、次のようになります:

{
    "FirstName": "John",
    "LastName": "Doe",
    "Age": 43,
    "Address": {
        "Street": "Downing Street 10",
        "City": "London",
        "Country": "Great Britain"
    },
    "Phone numbers": [
        "+44 1234567",
        "+44 2345678"
    ]
}

上記の例は、5つのキーと値のペアを持つオブジェクトで構成されています。値のうち2つは文字列、1つは数値、1つは別のオブジェクト、最後の1つは配列です。

有効なJSONドキュメントは配列かオブジェクトなので、ドキュメントは常に角括弧か中括弧で始まります。

JSONクラス

すべてのJSONクラスは値ベースで、暗黙的に共有されるクラスです。

Qt の JSON サポートは、これらのクラスで構成されています:

ゲームの保存と読み込みも参照してください

QJsonArray

JSON配列のカプセル化

QJsonDocument

JSONドキュメントの読み書き

QJsonObject

JSONオブジェクトのカプセル化

QJsonObject::const_iterator

QJsonObject::const_iterator クラスは、QJsonObject 用の STL スタイルの const イテレータを提供します。

QJsonObject::iterator

QJsonObject::iterator クラスは、QJsonObject 用の STL 形式の const 以外のイテレータを提供します。

QJsonParseError

JSONパース中にエラーを報告するために使用されます。

QJsonValue

JSON の値をカプセル化します。

©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 ここで提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。