QCborValue Class
QCborValueクラスは、CBORの値をカプセル化します。詳細...
Header: | #include <QCborValue> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
- 継承メンバを含む全メンバのリスト
- QCborValueはQtのCBORサポートの一部です。
このクラスは強く比較可能です。
注意:このクラスの関数は全てリエントラントです。
パブリック型
enum | DiagnosticNotationOption { Compact, LineWrapped, ExtendedFormat } |
flags | DiagnosticNotationOptions |
enum | EncodingOption { NoTransformation, UseFloat, UseFloat16, UseIntegers } |
flags | EncodingOptions |
enum | Type { Integer, ByteArray, String, Array, Map, …, Uuid } |
パブリック関数
QCborValue() | |
QCborValue(QCborArray &&a) | |
QCborValue(QCborMap &&m) | |
QCborValue(QCborSimpleType st) | |
QCborValue(QCborValue::Type t_) | |
QCborValue(QStringView s) | |
QCborValue(bool b) | |
QCborValue(const QByteArray &ba) | |
QCborValue(const QCborArray &a) | |
QCborValue(const QCborMap &m) | |
QCborValue(const QDateTime &dt) | |
QCborValue(const QRegularExpression &rx) | |
QCborValue(const QString &s) | |
QCborValue(const QUrl &url) | |
QCborValue(const QUuid &uuid) | |
QCborValue(double d) | |
QCborValue(qint64 i) | |
QCborValue(std::nullptr_t) | |
QCborValue(QCborTag tag, const QCborValue &tv = QCborValue()) | |
QCborValue(QLatin1StringView s) | |
QCborValue(QCborKnownTags tag, const QCborValue &tv = QCborValue()) | |
QCborValue(const QCborValue &other) | |
QCborValue(QCborValue &&other) | |
~QCborValue() | |
int | compare(const QCborValue &other) const |
bool | isArray() const |
bool | isBool() const |
bool | isByteArray() const |
bool | isContainer() const |
bool | isDateTime() const |
bool | isDouble() const |
bool | isFalse() const |
bool | isInteger() const |
bool | isInvalid() const |
bool | isMap() const |
bool | isNull() const |
bool | isRegularExpression() const |
bool | isSimpleType() const |
bool | isSimpleType(QCborSimpleType st) const |
bool | isString() const |
bool | isTag() const |
bool | isTrue() const |
bool | isUndefined() const |
bool | isUrl() const |
bool | isUuid() const |
void | swap(QCborValue &other) |
QCborTag | tag(QCborTag defaultValue = QCborTag(-1)) const |
QCborValue | taggedValue(const QCborValue &defaultValue = QCborValue()) const |
QCborArray | toArray() const |
QCborArray | toArray(const QCborArray &defaultValue) const |
bool | toBool(bool defaultValue = false) const |
QByteArray | toByteArray(const QByteArray &defaultValue = {}) const |
QByteArray | toCbor(QCborValue::EncodingOptions opt = NoTransformation) const |
void | toCbor(QCborStreamWriter &writer, QCborValue::EncodingOptions opt = NoTransformation) const |
QDateTime | toDateTime(const QDateTime &defaultValue = {}) const |
QString | toDiagnosticNotation(QCborValue::DiagnosticNotationOptions opts = Compact) const |
double | toDouble(double defaultValue = 0) const |
qint64 | toInteger(qint64 defaultValue = 0) const |
QJsonValue | toJsonValue() const |
QCborMap | toMap() const |
QCborMap | toMap(const QCborMap &defaultValue) const |
QRegularExpression | toRegularExpression(const QRegularExpression &defaultValue = {}) const |
QCborSimpleType | toSimpleType(QCborSimpleType defaultValue = QCborSimpleType::Undefined) const |
QString | toString(const QString &defaultValue = {}) const |
QUrl | toUrl(const QUrl &defaultValue = {}) const |
QUuid | toUuid(const QUuid &defaultValue = {}) const |
QVariant | toVariant() const |
QCborValue::Type | type() const |
QCborValue & | operator=(const QCborValue &other) |
QCborValue & | operator=(QCborValue &&other) |
QCborValueRef | operator[](const QString &key) |
const QCborValue | operator[](const QString &key) const |
QCborValueRef | operator[](QLatin1StringView key) |
QCborValueRef | operator[](qint64 key) |
const QCborValue | operator[](QLatin1StringView key) const |
const QCborValue | operator[](qint64 key) const |
静的パブリック・メンバー
QCborValue | fromCbor(QCborStreamReader &reader) |
QCborValue | fromCbor(const QByteArray &ba, QCborParserError *error = nullptr) |
QCborValue | fromCbor(const char *data, qsizetype len, QCborParserError *error = nullptr) |
QCborValue | fromCbor(const quint8 *data, qsizetype len, QCborParserError *error = nullptr) |
QCborValue | fromJsonValue(const QJsonValue &v) |
QCborValue | fromVariant(const QVariant &variant) |
関連する非メンバー
bool | operator!=(const QCborValue &lhs, const QCborValue &rhs) |
bool | operator<(const QCborValue &lhs, const QCborValue &rhs) |
bool | operator<=(const QCborValue &lhs, const QCborValue &rhs) |
bool | operator==(const QCborValue &lhs, const QCborValue &rhs) |
bool | operator>(const QCborValue &lhs, const QCborValue &rhs) |
bool | operator>=(const QCborValue &lhs, const QCborValue &rhs) |
詳細説明
このクラスは、CBORで利用可能な多くの型のうちの1つを保持するために使用できる。CBORはConcise Binary Object Representationの略で、JSONのスーパーセットである非常にコンパクトなバイナリデータ符号化形式です。これはIETF Constrained RESTful Environments (CoRE) WGによって作成され、多くの新しいRFCで使用されている。CBORはCoAPプロトコルと一緒に使われることを意図している。
CBORには3つの組み込み型グループがある:
- 基本型:整数、浮動小数点(double)、ブーリアン、nullなど。
- 文字列のような型:文字列とバイト配列
- コンテナ:配列とマップ
さらにCBORは、上記の型のひとつに「タグ」を関連付けることで、より多くの情報を伝達するための型拡張性をサポートしている。例えば、UUIDはタグと16バイトのUUIDコンテンツを含むバイト配列で表現される。QCborValueは、Qtクラス(QUuid など)を使用して、これらの拡張型の作成とデコードを直接サポートしています。
完全なリストについては、QCborValue::Type を参照してください。QCborValueの型は、type ()または "isXxxx "関数のいずれかを使用して照会できます。
拡張型とタグ付き値
タグ付き値とは、通常の QCborValue にタグとなる数値が付加されたものです。APIに含まれるタグの詳細や公式リストについては、QCborKnownTags を参照してください。このような組み合わせは拡張型を形成します。
QCborValueは、URL(QUrl )やUUID(QUuid )など、APIで特定の拡張型をサポートしています。APIでサポートされていないその他の拡張タイプは、Tag 型のQCborValueで表現されます。タグはtag() で、タグ付き値はtaggedValue() で取得できます。
将来の互換性をサポートするため、拡張 Qt 型を含む QCborValue は、同じ内容のタグ型と比較されます。つまり、以下の式が真になります:
QCborValue(uuid) == QCborValue(QCborKnownTags::Uuid, uuid.toRfc4122());
未定義値とヌル値
QCborValue には、特定の型ではない「null」の値を含めることができます。nullptr
こ れは C++ のstd::nullptr_t
型に似ています。QCborValue には、このような型を取るコンストラクタがあり、Null QCborValue を作成します。
ヌル値は、オプショナル値が存在しないことを示すために使用されます。その点では、C++ 標準ライブラリ型(std::optional
)と似ています。C++型とは異なり、CBORのヌル値は単に "Null "型であり、それがどのような具体的な型に置き換わっているのかを判断することはできません。
QCborValueは "undefined "型を持つこともできます。実際、QCborValueのデフォルト・コンストラクタが作成する値はこれです。
未定義の値はヌル値とは異なります。NULLは提供されないオプション値を示すために使用されますが、Undefinedは通常、期待される値が提供されなかったことを示すために使用されます。
このような値は完全に有効であり、JSONコンテンツやQJsonValue'のundefinedビットとは異なり、CBORストリームに現れる可能性がある。しかし、QJsonValue の Undefined のように、無効なルックアップ(QCborArray の場合はインデックスが範囲外、QCborMap の場合はキーが見つからない)に対して、CBORコンテナのvalue()または読み取り専用演算子[]によって返される。このようなケースをUndefinedの値と区別することはできないので、それが必要な場合は、QCborArray サイズをチェックし、QCborMap イテレータAPIを使用する。
単純型
CBORは、NullやUndefinedのように、他の値を持たない単純型をサポートしています。これらは互換的に "単純型 "や "単純値 "と呼ばれている。CBORはブーリアンを2つの異なる型(1つはtrue
、もう1つはfalse
)としてエンコードしますが、QCborValueはそれらのための便利なAPIを持っています。
現在のところ、CBORの単純型は定義されていません。QCborValueは、isSimpleType()やtoSimpleType()のようなAPIを使用することで、単純な数でそれらをサポートしています。これは、Qt APIが更新される前の将来の仕様との互換性のために利用できます。他のCBOR実装では完全にサポートされていない可能性があるため、そのような仕様の前に使用することは推奨されません。
CBORのサポート
QCborValueは、正規ストリームと厳密ストリームを作成するために必要なすべてのCBOR機能をサポートしています。QCborValue は、RFC 7049で指定されているほとんどすべての機能を実装している。
以下の表は、QCborValueがサポートするCBOR機能の一覧です。
機能 | サポート |
---|---|
符号なし数値 | はい (qint64 range) |
負数 | あり (qint64 範囲) |
バイト文字列 | はい |
テキスト文字列 | はい |
チャンク文字列 | 以下を参照 |
タグ | あり(任意) |
ブーリアン | あり |
ヌル | はい |
未定義 | はい |
任意の単純値 | あり |
半精度浮動小数点(16ビット) | はい |
単精度浮動小数点(32ビット) | はい |
倍精度浮動小数点(64ビット) | あり |
無限大とNaN浮動小数点 | はい |
確定長配列とマップ | はい |
不定長配列とマップ | はい |
文字列と整数以外のマップキー型 | あり(任意) |
QCborValue の整数は、qint64 型の範囲内に制限されます。すなわち、-9,223,372,036,854,775,808 (-263) から 9,223,372,036,854,775,807 (263- 1) までである。CBOR自体はこの範囲外の整数値を表すことができるが、QCborValueはこれをサポートしていない。これらの値を含むfromCbor() を使用してストリームをデコードする場合、QCborValue は自動的にDouble に変換しますが、最大 11 ビットの精度が失われる可能性があります。
fromCbor() はチャンク化された文字列をデコードできますが、常にチャンクを 1 つの QCborValue にマージします。そのため、toCbor ()を使用する場合は、常にチャンクされていない文字列を書き込みます(Canonicalフォーマットでは必須です)。
QCborValueは、CBORストリーム内の半精度および単精度浮動小数点値を常に倍精度に変換します。toCbor ()関数は、それらを再作成することを示すパラメータを取ることができます。
QCborValueRef
QCborValueRef は、QCborArray およびQCborMap のヘルパー・クラスです。これらのクラスでミューテ ィング API を使用した場合に得られる型です。QCborValueとは異なり、このクラスには新しい値を割り当てることができます。その場合、そのクラスが参照する配列やマップは新しい値で変更されます。その他の点では、そのAPIはQCborValueと同じである。
{CBORデータの解析と表示}。
QCborArray,QCborMap,QCborStreamReader,QCborStreamWriter,QJsonValue,QJsonDocument,Serialization Converter,Save and Loading a Gameも参照 。
メンバー型ドキュメント
enum QCborValue::DiagnosticNotationOption
flags QCborValue::DiagnosticNotationOptions
この enum は、toDiagnosticNotation() のオプション引数で使用され、出力形式を変更します。
定数 | 値 | 説明 |
---|---|---|
QCborValue::Compact | 0x00 | 改行を使わず、コンパクトに表現します。 |
QCborValue::LineWrapped | 0x01 | 改行を使用し、1行につき1つのQCborValue 。 |
QCborValue::ExtendedFormat | 0x02 | RFC 7049にはない、いくつかの異なるオプションを使って値を表現します。これらのオプションは変更される可能性があります。 |
現在のところ、ExtendedFormat
はバイト配列の表現方法を変更する。このオプションがない場合、バイト配列は常に16進数で表現され、空白は含まれない。これを使用すると、QCborValue::toCbor() は、コンテキストに応じて、スペース付きの16進エンコード、base64エンコード、またはbase64urlエンコードのいずれかを使用します。
DiagnosticNotationOptions 型はQFlags<DiagnosticNotationOption> の typedef です。DiagnosticNotationOption の値の OR の組み合わせを格納します。
toDiagnosticNotation()も参照してください 。
enum QCborValue::EncodingOption
flags QCborValue::EncodingOptions
この enum はtoCbor() の options 引数で使用され、エンコーダの動作を変更します。
定数 | 値 | 説明 |
---|---|---|
QCborValue::NoTransformation | 0 | (デフォルト) 変換を行いません。 |
QCborValue::UseFloat | 0x02 | エンコーダに、可能な限り IEEE 754 単精度浮動小数点(つまりfloat )を使うように指示します。 |
QCborValue::UseFloat16 | UseFloat | 0x04 | エン コ ーダに、 可能な限 り IEEE 754 半精度浮動小数点 (すなわちqfloat16 ) を使 う よ う 指示 し ます。UseFloat を意味します。 |
QCborValue::UseIntegers | 0x08 | エンコーダに、Double 型の値に整数が含まれる場合は常に整数を使用するよう指示します。 |
UseFloat16
の使用は、ストリームをCanonical Formatでエンコードするために必要ですが、それ以外は必要ありません。
EncodingOptions型はQFlags<EncodingOption>のtypedefである。これはEncodingOption値のORの組み合わせを格納する。
toCbor()も参照 。
enum QCborValue::Type
この列挙型はQCborValue 型を表します。これはtype() 関数によって返される。
CBOR組み込み型は以下のとおりです:
定数 | 値 | 説明 |
---|---|---|
QCborValue::Integer | 0x00 | qint64 :整数値 |
QCborValue::ByteArray | 0x40 | QByteArrayバイト配列(バイト文字列) |
QCborValue::String | 0x60 | QStringユニコード文字列(テキスト文字列) |
QCborValue::Array | 0x80 | QCborArrayQCborValueの配列 |
QCborValue::Map | 0xa0 | QCborMapQCborValueの連想コンテナ |
QCborValue::SimpleType | 0x100 | QCborSimpleType複数の単純型/値のうちの1つ |
QCborValue::False | SimpleType + int(QCborSimpleType::False) | bool 値の単純型false |
QCborValue::True | SimpleType + int(QCborSimpleType::True) | bool 値の単純型true |
QCborValue::Null | SimpleType + int(QCborSimpleType::Null) | std::nullptr_t NULL値の単純型 |
QCborValue::Undefined | SimpleType + int(QCborSimpleType::Undefined) | (型なし) 未定義の値の単純型 |
QCborValue::Double | 0x202 | double 倍精度浮動小数点 |
QCborValue::Invalid | -1 | 有効な値ではありません。これは通常CBORのデコード・エラーを示します。 |
さらに、QCborValue は拡張型を表すことができます:
定数 | 値 | 説明 |
---|---|---|
QCborValue::Tag | 0xc0 | タグ(QCborTag)とタグ付き値(QCborValue)で表される、未知または未認識の拡張型。 |
QCborValue::DateTime | 0x10000 | QDateTime日時スタンプ |
QCborValue::Url | 0x10020 | QUrlURL または URI |
QCborValue::RegularExpression | 0x10023 | QRegularExpression正規表現のパターン |
QCborValue::Uuid | 0x10025 | QUuidUUID |
type()も参照 。
メンバ関数 ドキュメント
QCborValue::QCborValue(QCborArray &&a)
QCborValue::QCborValue(const QCborArray &a)
配列a を持つQCborValue を作成する。この配列は、後でtoArray() を使って取り出すことができる。
toArray()、isArray() およびisMap() も参照 。
マップm を含むQCborValue を作成します。このマップは、後でtoMap() を使用して取得できます。
toMap()、isMap()、isArray() も参照 。
QCborValue::QCborValue(QCborKnownTags tag, const QCborValue &tv = QCborValue())
QCborValue::QCborValue(QCborTag tag, const QCborValue &tv = QCborValue())
タグ値tag 、タグ値tv で表される拡張タイプのQCborValue を作成します。タグは後でtag() を使用して取得でき、タグ値はtaggedValue() を使用して取得できます。
isTag()、tag()、taggedValue()、QCborKnownTagsも参照 。
QCborArray QCborValue::toArray() const
QCborArray QCborValue::toArray(const QCborArray &defaultValue) const
このQCborValue に格納されている配列値が配列型の場合は、その値を返します。そうでない場合は、defaultValue を返します。
この関数は、他の型からQCborArray への変換は行わないことに注意。
isArray()、isByteArray()、isMap()、isContainer()、toMap()も参照 。
このQCborValue に格納されているマップ値がマップ型である場合は、そのマップ値を返す。そうでない場合は、defaultValue を返す。
この関数は、他の型からQCborMap への変換は行わないことに注意。
isMap()、isArray()、isContainer() およびtoArray()も参照 。
[static]
QCborValue QCborValue::fromCbor(const char *data, qsizetype len, QCborParserError *error = nullptr)
[static]
QCborValue QCborValue::fromCbor(const quint8 *data, qsizetype len, QCborParserError *error = nullptr)
これはオーバーロードされた関数です。
data のlen バイトをQByteArray に変換し、QByteArray を受け付けるこの関数のオーバーロードを呼び出します。error が指定されている場合は、 も渡します。
QCborValue::QCborValue()
Undefined 型の QCborValue を作成します。
CBORの未定義値は、情報の欠落を示すために使用される。また、QCborArray およびQCborMap API でも、検索された項目が見つからなかったことを示すために使用されます。
未定義の値は、Undefined simple type で表されます。そのため、未定義の値を持つ QCborValues は、isSimpleType() およびisSimpleType(QCborSimpleType::Undefined)
でも真を返します。
未定義の値は NULL 値とは異なります。
未定義の値を持つQCborValueオブジェクトは、無効なQCborValueオブジェクトとも異なります。API が無効な QCborValue を作成することはありませんが、解析エラーの結果として存在することがあります。
isUndefined()、isNull()、isSimpleType()も参照して ください。
QCborValue::QCborValue(QCborSimpleType st)
st の単純型の QCborValue を作成します。この型は、isSimpleType(st) と同様に、toSimpleType() を使用して後で取得することができます。
nullptr
CBOR の単純型とは、C++ のstd::nullptr_t
型のように、関連する値を持たない型のことです。
st がQCborSimpleType::Null
の場合、結果の QCborValue はNull 型になり、QCborSimpleType::Undefined
も同様です。st がQCborSimpleType::False
またはQCborSimpleType::True
の場合、作成される QCborValue はそれぞれ false または true の値を含む boolean 型になります。
この関数は、API で定義されていない単純な型でも使用できます。例えば、単純型12のQCborValueを作成するには、次のように記述します:
QCborValue value(QCborSimpleType(12));
単純型は仕様が発表されるまでは使用しないでください。他の実装が適切にサポートしていない可能性があります。単純型の値24から31は予約されており、使用してはならない。
isSimpleType(),isNull(),isUndefined(),isTrue(),isFalse()
QCborValue::QCborValue(QCborValue::Type t_)
t_ 型の QCborValue を作成します。このような型に関連付けられた値は、デフォルトで作成されます。
type()も参照してください 。
QCborValue::QCborValue(QStringView s)
文字列値s を持つ QCborValue を作成します。この値は、後でtoString() を使用して取得できます。
toString()、isString()、およびisByteArray() も参照して ください。
QCborValue::QCborValue(bool b)
boolean 値b を持つ QCborValue を作成します。この値は、後でtoBool() を使用して取得できます。
内部的には、CBOR の boolean は、true と false の 2 つの型のペアで表現されます。そのため、ブーリアン型 QCborValues は、isSimpleType() の場合は true を返し、isSimpleType(QCborSimpleType::False)
またはisSimpleType(QCborSimpleType::True)
の場合は false を返します。
toBool()、isBool()、isTrue()、isFalse()、isSimpleType()も参照してください 。
QCborValue::QCborValue(const QByteArray &ba)
バイト配列値ba を持つ QCborValue を作成します。この値は、後でtoByteArray() を使用して取得できます。
toByteArray()、isByteArray()、isString()も参照して ください。
[explicit]
QCborValue::QCborValue(const QDateTime &dt)
日時拡張型で、dt で表される値を含む QCborValue オブジェクトを作成します。この値は、後でtoDateTime() を使用して取得できます。
CBOR の日付/時刻型は、タグを使用した拡張型です。DateTime としてタグ付けされた文字列(ISO 日付形式)、またはUnixTime_t としてタグ付けされた数値(1970 年の開始からの秒数、UTC)のいずれかです。CBOR ストリームを解析する際、QCborValue はUnixTime_t を文字列ベースの型に変換します。
toDateTime()、isDateTime()、およびtaggedValue()も参照してください 。
[explicit]
QCborValue::QCborValue(const QRegularExpression &rx)
正規表現パターン拡張型で、rx で表される値を含む QCborValue オブジェクトを作成します。この値は、後でtoRegularExpression() を使用して取得できます。
CBOR 正規表現型は、RegularExpression としてタグ付けされた文字列で表される拡張型です。CBOR 正規表現はパターンを格納するだけなので、QRegularExpression オブジェクトが持つフラグはすべて失われることに注意してください。
toRegularExpression()、isRegularExpression()、taggedValue()も参照してください 。
QCborValue::QCborValue(const QString &s)
文字列値s を持つ QCborValue を作成します。この値は、後でtoString() を使用して取得できます。
toString()、isString()、およびisByteArray()も参照して ください。
[explicit]
QCborValue::QCborValue(const QUrl &url)
URL 拡張タイプの QCborValue オブジェクトを作成し、url で表される値を格納します。この値は、後でtoUrl() を使用して取得できます。
CBOR URL タイプは、Url としてタグ付けされた文字列で表される拡張タイプです。
toUrl()、isUrl()、taggedValue()も参照 。
[explicit]
QCborValue::QCborValue(const QUuid &uuid)
UUID 拡張型で、uuid で表される値を含む QCborValue オブジェクトを作成します。この値は、toUuid() を使用して後で取得できます。
CBOR UUID 型は、Uuid としてタグ付けされたバイト配列で表される拡張型です。
toUuid()、isUuid()、taggedValue()も参照 。
QCborValue::QCborValue(double d)
浮動小数点値d を持つ QCborValue を作成します。この値は、後でtoDouble() を使用して取得できます。
CBOR 浮動小数点値は整数値とは異なります。したがって、整数を含む QCborValue オブジェクトは、浮動小数点を含む QCborValue オブジェクトと比較されます。
toDouble()、isDouble()、isInteger()も参照してください 。
QCborValue::QCborValue(qint64 i)
整数値i を持つ QCborValue を作成します。この値は、後でtoInteger() を使用して取得できます。
CBOR の整数値は浮動小数点値とは異なります。したがって、整数を含む QCborValue オブジェクトは、浮動小数点を含む QCborValue オブジェクトと比較されます。
toInteger(),isInteger(),isDouble()も参照してください 。
QCborValue::QCborValue(std::nullptr_t)
Null 型の QCborValue を作成します。
CBOR NULL 値は、提供されなかったオプションの値を示すために使用されます。NULL 値は通常、以前のエラーや問題の結果ではないという点で、未定義値とは異なります。
isNull(),isUndefined(),isSimpleType()も参照のこと 。
QCborValue::QCborValue(QLatin1StringView s)
これはオーバーロードされた関数です。
s で表示される Latin-1 文字列を持つ QCborValue を作成します。この値は、後でtoString() を使用して取得できます。
toString()、isString()、およびisByteArray()も参照してください 。
[noexcept]
QCborValue::QCborValue(const QCborValue &other)
other の内容をこのオブジェクトにコピーします。
[noexcept]
QCborValue::QCborValue(QCborValue &&other)
これはオーバーロードされた関数です。
other QCborValue オブジェクトの内容をこのオブジェクトに移動し、このオブジェクトのリソースを解放します。
[noexcept]
QCborValue::~QCborValue()
現在のQCborValue オブジェクトを破棄し、関連するリソースを解放します。
int QCborValue::compare(const QCborValue &other) const
この値とother を比較し、この値をother の前(結果が負の場合)と後(結果が正の場合)のどちらにソートすべきかを示す整数を返します。この関数が0を返す場合、2つの値は等しく、同じ内容を保持する。
各QCborValue に配列またはマップが含まれる場合、比較はそれらに含まれる要素に対して再帰的に行われる。
拡張型
QCborValue は、 や のような拡張型を含む と、それと等価なタグ付き表現を比較します。したがって、たとえば、次の式は真になります:Url Url QCborValue
QCborValue(QUrl("https://example.com")) == QCborValue(QCborKnownTags::Url, "https://example.com");
QUrl やQDateTime のような Qt 型は、その引数を正規化したり変更したりすることに注意してください。上の式が真になるのは、右辺の文字列が、左辺のQCborValue が取る正規化された値だからです。例えば、"https" の部分が両方とも大文字であった場合、比較は失敗します。QCborValue で行われる正規化に関する情報については、問題の Qt 型を取るコンストラクタのドキュメントを参照してください。
ソート順
CBORにおけるソート順はRFC 7049の3.9節で定義されており、Canonicalエンコーディングに従った場合のマップ内のキーのソートについて議論されています。この仕様によると、"ソートはキーのデータ項目の表現のバイト数で実行される "とあり、その結果として以下のように列挙されている:
- 「2つのキーの長さが異なる場合、短い方が早くソートされる。
- "2つのキーの長さが同じ場合、(バイト単位の)辞書的順序で値の小さい方を先にソートする。"
この結果、QCborValuesのソートは驚くような結果となり、この関数の結果は、後に含まれる要素を比較して取得される結果とは異なる。たとえば、文字列 "zzz" を含むQCborValue は、文字列 "foobar" を含むQCborValue よりも前にソートされます。QStrings またはQByteArrays として比較すると、"zzz" は "foobar" の後にソートされます(辞書順)。
この仕様では、異なる型の値に対してどのようなソート順を行うべきかを明確に示していない(ソートは「主要な型の3/5ビット分割に注意を払うべきでない」と述べている)。QCborValue 、型もソートされるべきであると仮定している。QCborValue::Type 列挙型の数値は、タグ付き等価値として比較される拡張型を除いて、この順序になっている。
注: ソート順は暫定的なものであり、変更される可能性があります。アプリケーションは、当分の間、この関数が返す順序に依存すべきではありません。
QCborArray::compare(),QCborMap::compare(),operator==()も参照のこと 。
[static]
QCborValue QCborValue::fromCbor(QCborStreamReader &reader)
reader で見つかったCBORストリームから1つの項目をデコードし、同等の表現を返す。この関数は再帰的であり、アイテムがマップまたは配列の場合、そのマップまたは配列で見つかったすべてのアイテムを、一番外側のオブジェクトが終了するまでデコードする。
この関数は、QCborStreamReader のルート要素で使用する必要はありません。例えば、次のコードは、ファイルの先頭からCBOR署名タグをスキップする方法を示しています:
if (reader.isTag() && reader.toTag() == QCborKnownTags::Signature) reader.next(); QCborValue contents = QCborValue::fromCbor(reader);
デコードに失敗しても、返される値は部分的に完全で、有効なQCborValue と見分けがつかないかもしれない。エラーがあったかどうかを判断するには、reader.lastError ()がエラー状態を示しているかどうかをチェックする。この関数は、最初のエラーの直後にデコードを停止する。
toCbor()、toDiagnosticNotation()、toVariant()、toJsonValue()も参照 。
[static]
QCborValue QCborValue::fromCbor(const QByteArray &ba, QCborParserError *error = nullptr)
これはオーバーロードされた関数である。
バイト配列ba で見つかったCBORストリームから1つの項目をデコードし、同等の表現を返す。この関数は再帰的である。アイテムがマップまたは配列の場合、そのマップまたは配列で見つかったすべてのアイテムを、一番外側のオブジェクトが終了するまでデコードする。
この関数は、エラーがあれば、そのエラー状態を、エラーが発生した場所のオフセットとともに、error が指すオブジェクトに格納します。エラーが発生しなかった場合は、NoError 、エラー状態と消費したバイト数が格納される(つまり、最初の未使用バイトのオフセットが格納される)。この情報を使用することで、同じバイト配列に存在する可能性のあるデータをさらに解析することが可能になる。
デコードに失敗しても、返される値は部分的に完全で、有効なQCborValue と見分けがつかないかもしれない。エラーがあったかどうかを判断するには、error にエラーが格納されているかどうかを確認する。この関数は、最初のエラーの直後にデコードを停止する。
toCbor()、toDiagnosticNotation()、toVariant()、toJsonValue()も参照 。
[static]
QCborValue QCborValue::fromJsonValue(const QJsonValue &v)
v に格納されている JSON 値を、対応する CBOR 値に変換して返す。CBORの型セットはJSONの型セットよりも豊富であるため、JSONからCBORへの変換でデータが失われることはない。さらに、この関数を使用してCBORに変換された値は、toJsonValue ()を使用してJSONに戻すことができ、データの損失はありません。
以下の表は、JSON型とCBOR型の対応表である:
JSONタイプ | CBOR型 |
---|---|
ブール | ブール |
数値 | 整数(端数がなく、qint64 の範囲にある場合)またはDouble |
文字列 | 文字列 |
配列 | 配列 |
オブジェクト | マップ |
Null | Null |
QJsonValue は未定義値であることもあり、これは以前の操作が失敗したことを示します(たとえば、オブジェクトに存在しないキーを検索するなど)。未定義の値はJSONの型ではないので、JSONの配列やオブジェクトに現れることはありませんが、対応する が未定義の場合、この関数は 未定義の値を返します。QJsonValue QCborValue
toJsonValue()、fromVariant()、QCborArray::fromJsonArray()、QCborMap::fromJsonObject()も参照 。
[static]
QCborValue QCborValue::fromVariant(const QVariant &variant)
QVariant variant をQCborValue に変換して返します。
QVariantsはさまざまなメタ型の大きなリストを含むことができ、その多くはCBORでは対応する表現がありません。これには、すべてのユーザー定義メタ型が含まれる。CBORを使用して送信を準備するとき、表現の損失を防ぐために各値を注意深くエンコードすることが推奨される。
次の表は、この関数が適用する変換の一覧です:
Qt(C++)型 | CBOR型 |
---|---|
invalid (QVariant()) | 未定義 |
bool | ブール |
std::nullptr_t | Null |
short ushort , , 、int uint qint64 | 整数 |
quint64 | 整数、qint64の範囲外の場合はDouble |
float ,double | Double |
QByteArray | ByteArray |
QDateTime | DateTime |
QCborSimpleType | 単純型 |
QJsonArray | 配列。QCborArray::formJsonArray() を使用して変換。 |
QJsonDocument | 配列またはマップ |
QJsonObject | Map,QCborMap::fromJsonObject() を使用して変換 |
QJsonValue | fromJsonValue() を使用して変換 |
QRegularExpression | RegularExpression |
QString | 文字列 |
QStringList | 配列 |
QVariantHash | マップ |
QVariantList | 配列 |
QVariantMap | マップ |
QUrl | URL |
QUuid | Uuid |
QVariant::isNull() が真を返した場合、QVariant が持つ型に関係なく、NULLQCborValue が返されるか、リストやオブジェクトに挿入されます。Qt 6.0でQVariant::isNull ()に影響する動作の変更は、この関数にも影響することに注意してください。
上記以外の型については、通常はQVariant::toString() を呼び出すことによって、文字列への変換が試みられます。変換に失敗した場合、値は未定義の CBOR 値で置き換えられます。また、QVariant::toString()は、大部分の型に対して非可逆であることに注意。
QVariant::toString()による変換は、いつでも変更される可能性があることに注意。将来、QVariant とQCborValue の両方が、より多くの型をサポートするように拡張される可能性があり、その結果、この関数が変換を実行する方法が変更されることになる。
toVariant()、fromJsonValue()、QCborArray::toVariantList()、QCborMap::toVariantMap()、QJsonValue::fromVariant()も参照 。
bool QCborValue::isArray() const
このQCborValue が配列型の場合、true を返す。配列の値はtoArray() で取得できます。
bool QCborValue::isBool() const
このQCborValue が真偽値である場合に真を返します。この値は、toBool() を使用して取得できます。
type()、toBool()、isTrue() およびisFalse()も 参照。
bool QCborValue::isByteArray() const
このQCborValue がバイト配列型の場合、true を返します。バイト配列の値は、toByteArray() を使用して取得できます。
type() およびtoByteArray()も参照 。
bool QCborValue::isContainer() const
この便宜関数は、QCborValue が配列またはマップである場合に真を返します。
bool QCborValue::isDateTime() const
このQCborValue が date/time 型の場合、true を返します。この値は、toDateTime() を使用して取得できます。日付/時刻は、DateTime というタグを使用する拡張型です。
また、CBOR ストリームからデコードする場合、QCborValue は値UnixTime_t のタグを解釈し、同等の日付/時刻に変換します。
type() およびtoDateTime()も参照 。
bool QCborValue::isDouble() const
このQCborValue が浮動小数点型の場合、true を返す。この値は、toDouble() を使用して取得できます。
bool QCborValue::isFalse() const
このQCborValue が偽の値を持つ真偽値である場合に真を返します。この関数が存在するのは、内部的に、CBOR の boolean は真と偽の 2 つの別々の型として格納されるからである。
type()、isBool()、isTrue()、toBool()も参照 。
bool QCborValue::isInteger() const
このQCborValue が整数型の場合、true を返します。整数値はtoInteger() で取得できます。
bool QCborValue::isInvalid() const
このQCborValue が有効な型でない場合は true を返します。無効な QCborValue は、未定義の値とは異なり、通常はデコード・エラーを表します。
isUndefined() およびisNull()も参照 。
bool QCborValue::isMap() const
このQCborValue が map 型の場合、true を返します。マップ値はtoMap() で取得できます。
bool QCborValue::isNull() const
このQCborValue がヌル・タイプの場合、true を返します。
CBOR NULL 値は、提供されなかったオプションの値を示すために使用されます。ヌル値は通常、以前のエラーや問題の結果ではないという点で、未定義値とは異なります。
ヌル値は、未定義値や無効なQCborValue オブジェクトとは異なります。API が無効な QCborValue を作成することはありませんが、解析エラーの結果として存在することがあります。
type()、isUndefined()、isInvalid()も参照して ください。
bool QCborValue::isRegularExpression() const
このQCborValue に正規表現のパターンが含まれている場合、true を返します。このパターンはtoRegularExpression() で取得できます。
type() およびtoRegularExpression()も参照 。
bool QCborValue::isSimpleType() const
このQCborValue が CBOR 単純型のいずれかである場合に true を返します。APIで列挙されていない型であっても、後でtype() を使って型そのものを取得することができる。また、isSimpleType(QCborSimpleType)オーバーロードでチェックすることもできる。
QCborSimpleType 、isSimpleType(QCborSimpleType)、toSimpleType()も参照して ください。
bool QCborValue::isSimpleType(QCborSimpleType st) const
これはオーバーロードされた関数です。
このQCborValue が単純型であり、toSimpleType() がst を返す場合は true を返し、そうでない場合は false を返します。この関数は、APIに列挙がないものであっても、任意のCBOR単純型をチェックするために使用することができる。例えば、値12の単純型に対しては、次のように書くことができる:
value.isSimpleType(QCborSimpleType(12));
QCborValue::QCborValue(QCborSimpleType),isSimpleType(),isFalse(),isTrue(),isNull,isUndefined(),toSimpleType()も参照 。
bool QCborValue::isString() const
このQCborValue が文字列型の場合、true を返します。文字列値は、toString() を使用して取得できます。
bool QCborValue::isTag() const
このQCborValue がタグ型の場合は true を返します。タグ値はtag() で、タグ付き値はtaggedValue() で取得できます。
この関数は、API が認識する拡張型についても真を返します。Qt API が拡張型をサポートするように更新される前に拡張型を直接扱うコードでは、taggedValue() を使用してタグ + タグ付き値のペアを再作成することが可能です。
type(),tag(),taggedValue(),taggedValue()も参照してください 。
bool QCborValue::isTrue() const
このQCborValue が真値を持つブール値であれば真を返す。この関数が存在するのは、内部的に CBOR の boolean は false と true の 2 つの別々の型として格納されるからである。
type()、isBool()、isFalse()、toBool()も参照 。
bool QCborValue::isUndefined() const
このQCborValue が未定義の型である場合、true を返す。
CBORの未定義値は、情報の欠落を示すために使用される。また、QCborArray およびQCborMap API でも、検索された項目が見つからなかったことを示すために使用されます。
未定義値はヌル値とは異なります。
QCborValue 未定義の値を持つオブジェクトは、無効な オブジェクトとも異なります。API が無効な QCborValue を作成することはありませんが、解析エラーの結果として存在することがあります。QCborValue
type()、isNull()、isInvalid()も参照して ください。
bool QCborValue::isUrl() const
このQCborValue が URL 型の場合、true を返します。URL 値は、toUrl() を使用して取得できます。
bool QCborValue::isUuid() const
このQCborValue に UUID が含まれている場合は true を返します。この値は、toUuid() を使用して取得できます。
[noexcept]
void QCborValue::swap(QCborValue &other)
このQCborValue オブジェクトとother の内容を入れ替えます。
QCborTag QCborValue::tag(QCborTag defaultValue = QCborTag(-1)) const
この拡張QCborValue オブジェクトがタグ型の場合はそのタグを返し、そうでない場合はdefaultValue を返します。
CBOR は、格納された表現に番号(タグ)を関連付けることで、拡張型を表します。この関数はその番号を返します。表現を取得するには、taggedValue() を使用します。
isTag()、taggedValue()、isDateTime()、isUrl()、isRegularExpression()、isUuid()も参照 。
QCborValue QCborValue::taggedValue(const QCborValue &defaultValue = QCborValue()) const
この拡張QCborValue オブジェクトがタグ型の場合はタグ付き値を返し、そうでない場合はdefaultValue を返します。
CBOR は、格納された表現に番号(タグ)を関連付けることで、拡張型を表します。この関数はその表現を返します。タグを取得するには、tag() を使用します。
isTag()、tag()、isDateTime()、isUrl()、isRegularExpression()、isUuid()も参照 。
bool QCborValue::toBool(bool defaultValue = false) const
このQCborValue に格納されている値が boolean 型の場合は、その値を返します。そうでない場合は、defaultValue を返します。
isBool()、isTrue()、およびisFalse()も参照 。
QByteArray QCborValue::toByteArray(const QByteArray &defaultValue = {}) const
バイト配列型の場合は、このQCborValue に格納されているバイト配列値を返します。そうでない場合は、defaultValue を返します。
この関数は、他の型からQByteArray への変換は行わないことに注意。
isByteArray()、isString()、およびtoString()も参照 。
QByteArray QCborValue::toCbor(QCborValue::EncodingOptions opt = NoTransformation) const
opt で指定されたオプションを使用して、このQCborValue オブジェクトを CBOR 表現にエンコードし、その表現を含むバイト配列を返します。
この関数は、このQCborValue または含まれる項目(これがマップまたは配列の場合)が無効な場合を除き、失敗しません。無効な型は、APIでは通常生成されませんが、デコード・エラーに起因する可能性があります。
デフ ォル ト では、 こ の関数はQCborValue の値に対して変換を行わず、 すべての浮動小数点を倍精度 (double
) 型 と し て直接書き込みます。UseFloat オプションが指定された場合、その表現を使っても精度が落ちない浮動小数点値には単精度 (float
) を使用します。これには無限大やNaN値も含まれる。
同様に、UseFloat16 が指定された場合、この関数は半精度(qfloat16
)浮動小数点への変換で精度の損失がなければ、その浮動小数点を使おうとします。これは常に無限大とNaNの場合に当てはまる。
UseIntegers が指定された場合、実際の整数を含む浮動小数点値に対しては整数を使用する。
fromCbor(),fromVariant(),fromJsonValue()も参照のこと 。
void QCborValue::toCbor(QCborStreamWriter &writer, QCborValue::EncodingOptions opt = NoTransformation) const
これはオーバーロードされた関数です。
opt で指定されたオプションを使用して、writer で指定されたライタに、このQCborValue オブジェクトを CBOR 表現にエンコードします。例えば、大きな配列の異なる要素をエンコードするために、複数の QCborValue で同じライターを使用することができます。
この関数は、このQCborValue 、またはマップや配列であれば含まれる項目のいずれかが無効である場合を除き、失敗することはありません。無効な型は、APIでは通常生成されませんが、デコード・エラーに起因することがあります。
デフ ォル ト では、 こ の関数はQCborValue の値に対して変換を行わず、 すべての浮動小数点を倍精度 (binary64) 型 と し て直接書 き 出 し ます。UseFloat オプションが指定された場合、その表現を使用しても精度が損なわれない浮動小数点値に対しては、単精度(binary32)を使用します。これには無限大やNaN値も含まれる。
同様に、UseFloat16 が指定された場合、この関数は半精度(binary16)浮動小数点への変換で精度の損失がなければ、半精度(binary16)浮動小数点を使おうとします。これは常に無限大とNaNの場合に当てはまる。
UseIntegers が指定された場合、実際の整数を含む浮動小数点値に対しては整数を使用する。
fromCbor(),fromVariant(),fromJsonValue()も参照のこと 。
QDateTime QCborValue::toDateTime(const QDateTime &defaultValue = {}) const
このQCborValue に格納されている日付/時刻値が日付/時刻拡張型である場合は、その値を返す。そうでない場合は、defaultValue を返す。
この関数は、他の型からQDateTime への変換は行わないことに注意。
isDateTime()、isTag()、taggedValue()も参照 。
QString QCborValue::toDiagnosticNotation(QCborValue::DiagnosticNotationOptions opts = Compact) const
この CBOR オブジェクトに相当する診断表記法を作成し、それを返します。opts パラメータは表記法の方言を制御します。診断記法は、QCborValue や CBOR ストリームにどのような値が格納されているかを開発者が理解するのを助けるために、デバッグに役立ちます。そのため、Qt APIは診断をインメモリフォーマットやCBORストリームにパースするためのサポートを提供しません。
CBOR診断記法はRFC7049のセクション6で規定されています。これはCBORストリームのテキスト表現であり、JSONに非常に似ているが、JSONにはないCBOR型をサポートしている。ExtendedFormat フラグによって有効化される拡張フォーマットは、現在いくつかのIETFドラフトにあり、そのフォーマットは変更される可能性がある。
この関数は、toCbor()が生成するストリームと同等の表現を、そこで提供される変換オプションなしで生成します。また、この関数は、オブジェクトの作成に使用されたストリームの表現を生成しない可能性があります。これは、オブジェクトがfromCbor() を使用して作成された場合、その関数が変換を適用した可能性があるためです。変換のないストリームの忠実度の高い表記については、cbordump
の例を参照してください。
toCbor() およびQJsonDocument::toJson()も参照して ください。
double QCborValue::toDouble(double defaultValue = 0) const
Double 型の場合は、このQCborValue に格納されている浮動小数点値を返します。Integer 型の場合、この関数は整数値を double 型に変換した値を返します。それ以外の場合は、defaultValue を返します。
isDouble()、isInteger()、およびtoInteger()も参照して ください。
qint64 QCborValue::toInteger(qint64 defaultValue = 0) const
このQCborValue に格納されている整数値が integer 型の場合は、その整数値を返します。Double 型の場合は、浮動小数点値を整数に変換した値を返します。それ以外の場合は、defaultValue を返します。
isInteger()、isDouble()、およびtoDouble()も参照して ください。
QJsonValue QCborValue::toJsonValue() const
このQCborValue オブジェクトを JSON の等価表現に変換し、QJsonValue として返します。
CBORはJSONよりも豊富で幅広い型セットを含んでいるため、この変換で失われる情報もあることに注意してください。以下の表はCBOR型とJSON型を比較し、情報が失われるかどうかを示している。
CBORタイプ | JSONタイプ | コメント |
---|---|---|
ブール | ブール | データ損失なし |
ダブル | 数値 | 無限大とNaNはNullに変換される。 |
整数 | 整数 | 整数が253より大きいか-253より小さい場合、変換時にデータ損失の可能性あり。 |
Null | Null | データ損失なし |
未定義 | Null | 失われたタイプ情報 |
文字列 | 文字列 | データ損失なし |
バイト配列 | 文字列 | Base64urlのような可逆エンコーディングに変換されるが、文字列とバイト配列の区別は失われる。 |
その他の単純型 | 文字列 | 型の情報が失われる |
配列 | 配列 | 変換は含まれる各値に適用される |
マップ | オブジェクト | キーは文字列に変換され、値はこの表に従って変換される |
タグと拡張型 | 特殊 | タグ番号自体は失われ、タグ付き値はJSONに変換される。 |
CBORマップ・キーの文字列への変換については、QCborMap::toJsonObject ()を参照のこと。
このQCborValue に未定義の値が含まれている場合、この関数は未定義のQJsonValue も返す。JSONは未定義の値をサポートしておらず、未定義のQJsonValueは仕様の拡張であることに注意してください。これらは、QJsonArray またはQJsonObject に保持することはできませんが、失敗を示すために関数から返すことができます。他のすべての意図と目的では、それらはnullと同じです。
タグと拡張型の特別な処理
いくつかのタグは特別に扱われ、タグ付き値の変換をCBORからJSONに変更します。以下の表は、それらの特別なケースの一覧です:
タグ | CBOR型 | 変換 |
---|---|---|
ExpectedBase64url | バイト配列 | バイト配列をBase64urlとしてエンコードする。 |
ExpectedBase64 | バイト配列 | バイト配列を Base64 でエンコード |
ExpectedBase16 | バイト配列 | バイト配列を16進数でエンコードする |
URL | URL および文字列 | QUrl::toEncoded() を使用して、エンコーディングを URL の完全にエンコードされた形式に正規化する。 |
Uuid | Uuid およびバイト配列 | QUuid::toString() を使用して文字列表現を作成します。 |
fromJsonValue()、toVariant()、QCborArray::toJsonArray() およびQCborMap::toJsonObject()も参照 。
QRegularExpression QCborValue::toRegularExpression(const QRegularExpression &defaultValue = {}) const
正規表現パターン拡張型の場合は、このQCborValue に格納されている正規表現値を返します。そうでない場合はdefaultValue を返す。
この関数は、他の型からQRegularExpression への変換は行わないことに注意。
isRegularExpression()、isTag()、およびtaggedValue()も参照 。
QCborSimpleType QCborValue::toSimpleType(QCborSimpleType defaultValue = QCborSimpleType::Undefined) const
このQCborValue が単純型の場合は、その単純型を返します。単純型でない場合は、defaultValue を返します。
以下の型は単純型であり、この関数は列挙された値を返します:
QCborValue::False | QCborSimpleType::False |
QCborValue::True | QCborSimpleType::True |
QCborValue::Null | QCborSimpleType::Null |
QCborValue::Undefined | QCborSimpleType::Undefined |
type()、isSimpleType()、isBool()、isTrue()、isFalse()、isTrue()、isNull()、isUndefined()も参照 。
QString QCborValue::toString(const QString &defaultValue = {}) const
このQCborValue に格納されている文字列値が文字列型の場合は、その値を返します。そうでない場合はdefaultValue を返す。
この関数は、他の型からQString への変換は行わないことに注意。
isString()、isByteArray()、およびtoByteArray()も参照 。
QUrl QCborValue::toUrl(const QUrl &defaultValue = {}) const
URL 拡張型の場合は、このQCborValue に格納されている URL 値を返す。そうでない場合は、defaultValue を返します。
この関数は、他の型からQUrl への変換は行わないことに注意。
isUrl()、isTag()、およびtaggedValue()も参照 。
QUuid QCborValue::toUuid(const QUuid &defaultValue = {}) const
UUID 拡張型の場合、このQCborValue に格納されている UUID 値を返す。そうでない場合は、defaultValue を返す。
この関数は、他の型からQUuid への変換を行わないことに注意。
isUuid()、isTag()、およびtaggedValue()も参照 。
QVariant QCborValue::toVariant() const
この値を Qt ネイティブ型に変換し、対応するQVariant を返します。
次の表は、QCborValue types とQt meta types の間で行われるマッピングの一覧です。
CBOR 型 | Qt または C++ 型 | 備考 |
---|---|---|
整数 | qint64 | |
Double | double | |
ブール | bool | |
Null | std::nullptr_t | |
未定義 | 型なし (QVariant()) | |
バイト配列 | QByteArray | |
文字列 | QString | |
配列 | QVariantList | すべての値を再帰的に変換 |
マップ | QVariantMap | キー型は "文字列化" |
その他の単純な型 | QCborSimpleType | |
DateTime | QDateTime | |
URL | QUrl | |
RegularExpression | QRegularExpression | |
Uuid | QUuid | |
その他のタグ | 特殊 | タグは無視され、タグ付き値はこの関数を使って変換される。 |
CBORマップと配列の両方の値は、この関数を使用して再帰的に変換され、代わりにQVariantMap とQVariantList に配置されることに注意してください。QVariants 内にQCborMap とQCborArray が格納されることはありません。
QVariantMapはCBORと違って文字列キーを持つので、QCborMap からQVariantMap への変換は、キー値の "文字列化 "のステップを意味する。詳細はQCborMap::toJsonObject() を参照。
fromVariant()、toJsonValue()、QCborArray::toVariantList()、QCborMap::toVariantMap()も参照 。
QCborValue::Type QCborValue::type() const
このQCborValue の型を返す。この型は、後で "isXxx" 関数のいずれかで取得することもできます。
isInteger()、isByteArray()、isString()、isArray()、isMap()、isTag()、isFalse()、isTrue()、isBool()、isNull()、isUndefined 、isDouble()、isDateTime()、isUrl()、isRegularExpression()、isUuid()も参照 。
[noexcept]
QCborValue &QCborValue::operator=(const QCborValue &other)
この QCborObject の内容をother のコピーで置き換えます。
[noexcept]
QCborValue &QCborValue::operator=(QCborValue &&other)
これはオーバーロードされた関数です。
other QCborValue オブジェクトの内容をこのオブジェクトに移動し、このオブジェクトのリソースを解放します。このオブジェクトへの参照を返します。
QCborValueRef QCborValue::operator[](const QString &key)
QCborValueRef を返します。この QCborValueRef を使用して、指定されたkey のエントリをマップとして読み取ったり、変更したりすることができます。このQCborValue がQCborMap である場合、この関数はそのマップのマッチング演算子[]と等価です。
参照を返す前に: このQCborValue が配列であった場合、まずマップに変換されます(各インデックス、i
、有効なarray[i]
に対してmap[i]
がarray[i]
となるように)。そうでない場合、マップでなければ空のマップで上書きされます。
operator[](qint64)、QCborMap::operator[] 、QCborMap::value()、QCborMap::find()も参照のこと 。
const QCborValue QCborValue::operator[](const QString &key) const
このQCborValue がQCborMap の場合、キーがkey にマッチする値の要素を検索する。マップ内にkey にマッチするキーがない場合、またはこのQCborValue オブジェクトがマップでない場合は、未定義の値を返します。
この関数は以下と等価である:
value.toMap().value(key);
operator[](qint64)、QCborMap::operator[] 、QCborMap::value()、QCborMap::find()も参照 。
QCborValueRef QCborValue::operator[](QLatin1StringView key)
これはオーバーロードされた関数です。
QCborValueRef を返します。この QCborValueRef を使用して、指定されたkey のエントリをマップとして読み取ったり、変更したりすることができます。このQCborValue がQCborMap の場合、この関数はそのマップのマッチング演算子[]と等価です。
参照を返す前に: このQCborValue が配列であった場合、まずマップに変換されます(各インデックス、i
、有効なarray[i]
に対してmap[i]
がarray[i]
となるように)。そうでない場合、マップでなければ空のマップで上書きされます。
operator[](qint64)、QCborMap::operator[] 、QCborMap::value()、QCborMap::find()も参照のこと 。
QCborValueRef QCborValue::operator[](qint64 key)
これはオーバーロードされた関数です。
QCborValueRef を返します。この QCborValueRef は、マップまたは配列として、指定されたkey のエントリを読み込んだり変更したりするために使用できます。このQCborValue がQCborMap の場合、または 0 <= key < 0x10000 の場合はQCborArray の場合、この関数はそのマップまたは配列のマッチング演算子[]と等価です。
参照を返す前に: このQCborValue が配列であったが、キーが範囲外であった場合、配列はまずマップに変換される (map[i]
が各インデックス、i
、有効なarray[i]
に対してarray[i]
となるように)。そうでなければ、マップでなかった場合、空のマップで上書きされる。
operator[] 、QCborMap::operator[] 、QCborMap::value()、QCborMap::find()、QCborArray::operator[] 、QCborArray::at()も参照のこと 。
const QCborValue QCborValue::operator[](QLatin1StringView key) const
これはオーバーロードされた関数である。
このQCborValue がQCborMap の場合、キーがkey にマッチする値の要素を検索します。マップ内にkey にマッチするキーがない場合、またはこのQCborValue オブジェクトがマップでない場合は、未定義の値を返します。
この関数は以下と等価である:
value.toMap().value(key);
operator[](qint64)、QCborMap::operator[] 、QCborMap::value()、QCborMap::find()も参照 。
const QCborValue QCborValue::operator[](qint64 key) const
これはオーバーロードされた関数である。
この関数QCborValue がQCborMap の場合、キーがkey と一致する値の要素を検索する。これがQCborArray の場合、インデックスがkey である要素を返します。 配列またはマップにマッチする値がない場合、またはこのQCborValue オブジェクトが配列またはマップでない場合、未定義の値を返します。
operator[] 、QCborMap::operator[] 、QCborMap::value()、QCborMap::find()、QCborArray::operator[] 、QCborArray::at()も参照 。
関連する非メンバー
[noexcept]
bool operator!=(const QCborValue &lhs, const QCborValue &rhs)
lhs とrhs を比較し、内容が異なれば真を、そうでなければ偽を返します。各QCborValue が配列またはマップを含む場合、比較はそれらに含まれる要素に対して再帰的に行われる。
Qt における CBOR の等価性の詳細については、QCborValue::compare() を参照してください。
compare(),QCborValue::operator==(),QCborMap::operator==(),operator==(),operator<()も参照してください 。
[noexcept]
bool operator<(const QCborValue &lhs, const QCborValue &rhs)
lhs とrhs を比較し、lhs がrhs よりも先にソートされるべき場合は true、そうでない場合は false を返します。各QCborValue が配列またはマップを含む場合、比較はそれらに含まれる要素に対して再帰的に行われる。
CBORのソート順の詳細については、QCborValue::compare()を参照。
compare()、QCborValue::operator==()、QCborMap::operator==()、operator==()、operator!=()も参照のこと 。
[noexcept]
bool operator<=(const QCborValue &lhs, const QCborValue &rhs)
lhs とrhs を比較し、lhs がrhs より前にソートされるべきか、またはrhs と等しい場合は true を返し、そうでない場合は false を返す。各QCborValue が配列またはマップを含む場合、比較はそれらに含まれる要素に対して再帰的に行われる。
CBORのソート順の詳細については、QCborValue::compare()を参照。
compare()、QCborValue::operator<()、QCborMap::operator==()、operator==()、operator!=()も参照のこと 。
[noexcept]
bool operator==(const QCborValue &lhs, const QCborValue &rhs)
lhs とrhs を比較し、同じ内容であれば真を、そうでなければ偽を返す。各QCborValue が配列またはマップを含む場合、比較はそれらに含まれる要素に対して再帰的に行われる。
QtにおけるCBORの等価性の詳細については、compare()を参照してください。
compare(), QCborValue::operator==(),QCborMap::operator==(),operator!=(),operator<()も参照して ください。
[noexcept]
bool operator>(const QCborValue &lhs, const QCborValue &rhs)
lhs とrhs を比較し、lhs をrhs の後にソートする必要がある場合は true、そうでない場合は false を返します。各QCborValue が配列またはマップを含む場合、比較はそれらに含まれる要素に対して再帰的に行われる。
CBORのソート順の詳細については、QCborValue::compare()を参照。
compare()、QCborValue::operator>=()、QCborMap::operator==()、operator==()、operator!=()も参照のこと 。
[noexcept]
bool operator>=(const QCborValue &lhs, const QCborValue &rhs)
lhs とrhs を比較し、lhs がrhs より後にソートされるべきか、またはrhs と等しい場合は true を返し、そうでない場合は false を返す。各QCborValue が配列またはマップを含む場合、比較はそれらに含まれる要素に対して再帰的に行われる。
CBORのソート順の詳細については、QCborValue::compare()を参照。
compare(),QCborValue::operator>(),QCborMap::operator==(),operator==(),operator!=()も参照してください 。
©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。