0、說明
QJsonValue類用於操作JSON中的各種數據。
JSON是用於存儲結構化數據的格式,JSON中的數據可以是六種類型:
基本類型 |
存儲類型 |
| bool | QJsonValue::Bool |
| double | QJsonValue::Double |
| string | QJsonValue::String |
| array | QJsonValue::Array |
| object | QJsonValue::Object |
| null | QJsonValue::Null |
這六種類型就能代表任何程序中的類型了。除此之外,QJsonValue還有一個特殊的標簽用於指代未定義變量,通過isUndefined()查看這個標簽。
值的類型通過type()查看,或者直接用isBool()、isString()、...進行判斷。同時,JSON中的值通過toBool()、toString()、...轉化為程序中的類型。
數值類型是內部嚴格對應的,不同於QVariant,QJsonValue並不會做隱含的強制轉型。這意味着轉換一個不存在於Value的類型會返回一個默認類型的Value。
1、模塊和載入項
| Header | #include<QJsonValue> |
| qmake | QT += core |
| Since | Qt 5.0 |
2、構造
| QJsonValue(QJsonValue other) |
| QJsonValue(QJsonObject o) |
| QJsonValue(QJsonArray a) |
| QJsonValue(var s) var可以是char、QString、qint64、double、bool |
3、靜態方法
| QJsonValue | fromVariant(QVariant variant) |
4、實例方法
返回值類型 |
方法 |
說明 |
| QJsonValue & bool bool QJsonValue QJsonValue |
operator=(QJsonValue other) operator!=(QJsonValue other) operator==(QJsonValue other) operator[](QString key) operator[](int i) |
賦值 判斷是否不等 判斷是否相等 可以用 [i]的方式提取元素 |
| bool | isArray() isBool() isDouble() isNull() isObject() isString() |
類型判斷 |
| void | swap(QJsonValue &other) | 交換兩個QJsonValue的值 |
| QJsonArray | toArray(QJsonArray defaultValue) toArray() |
QJsonValue轉換為QJsonArray |
| bool double int QJsonObject QJsonObject QString QString QVariant |
toBool(bool defaultValue = false) toDouble(double defaultValue = 0) toInt(int defaultValue = 0) toObject(QJsonObject defaultValue) toObject() toString() toString(QString defaultValue) |
QJsonValue轉換為指定類型 |
| QJsonValue::Type | type() | QJsonValue中數據的類型 |
5、QJsonValue、QJsonArray、QJsonObject、QJsonDocument之間的關聯
Qt:QJsonDocument以及與QJsonArray、QJsonObject、QJsonValue的關聯 - ShineLe - 博客園
