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 - 博客园