0、說明
QJsonObject在邏輯上就是一個Map或Dict!記住這一點對理解它的方法、說明很有幫助。
QJsonObject類封裝了JSON Object。
JSON Object是一個Key-Value對,Key是string,而Value是QJsonValue。
QJsonObject與QVariantMap間可以互相轉化。可以通過調用size()來查詢K-V對的數量。通過insert()、remove()來從中移除K-V對。
QJsonObject是個隱含共享類,與創建它的Document共享數據。
可以從JSON文本文件中通過QJsonDocument轉換得到QJsonObject,也可以進行相反的操作把QJsonObject轉為QJsonDocument。
1、模塊和加載項
Header: | #include <QJsonObject> |
qmake: | QT += core |
Since: | Qt 5.0 |
2、構造
QJsonObject(QJsonObject other) | 返回另一個QJsonObject的副本 |
QJsonObject(List<QPair<QString, QJsonValue> > args) | 通過初始化List構造QJsonObject:
QJsonObject object { {"property1", 1}, {"property2", 2} }; |
QJsonObject() | 構造空QJsonObject |
3、靜態字段
class | const_iterator | |
class | iterator | |
typedef | ConstIterator | |
typedef | Iterator | |
typedef | key_type | |
typedef | mapped_type | |
typedef | size_type |
3、靜態方法
返回值類型 |
方法 |
說明 |
QJsonObject | fromVariantHash(QVariantHash hash) | 將一個QVariantHash轉化為QJsonObject |
QJsonObject | fromVariantMap(QVariantMap map) | 將一個QVariantMap轉化為QJsonObject |
4、實例方法
返回值類型 |
方法 |
說明 |
QJsonObject bool bool QJsonValue |
operator=(QJsonObject other) operator!=(QJsonObject other) operator==(QJsonObject other) operator[](QString key) |
賦值 不相等判斷 相等判斷 取Key對應的Value |
QJsonObject::iterator | begin() | STL樣式的迭代器,指向Object的首項 |
bool | contains(QString key) contains(QStringView key) |
Object中是否包含Key key |
int | count() | 等同於size(),有多少個K-V對 |
bool | empty() | 是否為空 |
QJsonObject::iterator | end() | STL樣式的迭代器,指向Object的末尾 |
QJsonObject::iterator | erase(QJsonObject::iterator it) | 移除迭代器it指向的K-V對 |
QJsonObject::iterator | find(QString key) find(QStringView key) find(QStringView key) |
返回迭代器指向的一個Key為key的項 |
QJsonObject::iterator | insert(QString key, QJsonValue value) insert(QStringView key, QJsonValue value) |
插入一個新key-value對 |
bool | isEmpty() | 是否為空 |
QStringList | keys() | 所有Key構成的List |
int | length() | 等同於size(),有多少個K-V對 |
void | remove(QString key) remove(QStringView key) |
移除Key為key的K-V對 |
int | size() | 有多少個K-V對 |
void | swap(QJsonObject &other) | 交換兩個QJsonObject |
QJsonValue | take(QString key) take(QStringView key) |
從QJsonObject中移除Key為key的K-V對 |
QVariantHash | toVariantHash() | 將QJsonObject轉換為QVariantHash |
QVariantMap | toVariantMap() | 將QJsonObject轉換為QVariantMap |
QJsonValue | value(QString key) value(QStringView key) |
提取Key對應的Value |
6、常用
1)提取QJsonObject中某個Key對應的Value:QJsonObject[ key ] 或 QJsonObject.value( key )
7、QJsonValue、QJsonArray、QJsonObject、QJsonDocument之間的關聯
Qt:QJsonDocument以及與QJsonArray、QJsonObject、QJsonValue的關聯 - ShineLe - 博客園