QT_QJsonObject类的使用

        QJsonObject是Qt提供的一个类,它可以封装一个JSON对象。JSON对象是一种数据格式,它可以表示一组键值对,键是字符串,值可以是不同类型的JSON值。

        要使用QJsonObject,需要包含<QJsonObject>头文件,并创建一个QJsonObject对象。可以使用不同的方式来初始化和修改QJsonObject对象,比如:

- 使用花括号和冒号来直接构造一个QJsonObject对象,类似于JavaScript的对象字面量。
- 使用insert()函数或者[]运算符来往QJsonObject对象中插入一个键值对。
- 使用remove()函数或者take()函数来从QJsonObject对象中删除一个键值对。
- 使用contains()函数或者find()函数来判断QJsonObject对象中是否包含某个键。
- 使用value()函数或者[]运算符来从QJsonObject对象中获取某个键对应的值。
- 使用keys()函数来获取QJsonObject对象中所有键的列表。

下面是一个使用QJsonObject的示例代码:
#include <QJsonObject>
#include <QDebug>

int main()
{
    // 使用花括号和冒号直接构造一个QJsonObject对象
    QJsonObject obj {
        {"name", "Alice"},
        {"age", 20},
        {"gender", "female"}
    };

    // 打印结果
    qDebug() << obj;

    // 输出:
    /*
    QJsonObject({"age":20,"gender":"female","name":"Alice"})
    */

    // 使用insert()函数往QJsonObject对象中插入一个键值对
    obj.insert("hobby", "reading");

    // 打印结果
    qDebug() << obj;

    // 输出:
    /*
    QJsonObject({"age":20,"gender":"female","hobby":"reading","name":"Alice"})
    */

    // 使用[]运算符往QJsonObject对象中插入一个键值对
    obj["city"] = "New York";

    // 打印结果
    qDebug() << obj;

    // 输出:
    /*
    QJsonObject({"age":20,"city":"New York","gender":"female","hobby":"reading","name":"Alice"})
    */

    // 使用remove()函数从QJsonObject对象中删除一个键值对
    obj.remove("gender");

    // 打印结果
    qDebug() << obj;

    // 输出:
    /*
    QJsonObject({"age":20,"city":"New York","hobby":"reading","name":"Alice"})
    */

    // 使用take()函数从QJsonObject对象中删除一个键值对,并获取它的值
    QJsonValue value = obj.take("hobby");

    // 打印结果
    qDebug() << obj;
    qDebug() << value;

    // 输出:
    /*
    QJsonObject({"age":20,"city":"New York","name":"Alice"})
    QJsonValue(string, "reading")
    */

    // 使用contains()函数判断QJsonObject对象中是否包含某个键
    bool hasName = obj.contains("name");
    
    // 打印结果
    qDebug() << hasName;

    // 输出:
    /*
    true
    */

     // 使用find()函数判断QJsonObject对象中是否包含某个键,并获取它的迭代器
     auto it = obj.find("age");
     if (it != obj.end()) {
         qDebug() << it.key() << ":" << it.value();
     }

     // 输出:
     /*
     "age" : QJsonValue(double, 20)
     */

     // 使用value()函数从QJsonObject对象中获取某个键对应的值
     QJsonValue name = obj.value("name");

     // 打印结果
     qDebug() << name;

     // 输出:
     /*
     QJsonValue(string, "Alice")
     */

     // 使用[]运算符从QJsonObject对象中获取某个键对应的值
     QJsonValue city = obj["city"];

     // 打印结果
     qDebug() << city;

     // 输出:
     /*
     QJsonValue(string, "New York")
     */

     // 使用keys()函数获取QJsonObject对象中所有键的列表
     QStringList keys = obj.keys();

     // 打印结果
     qDebug() << keys;

     // 输出:
     /*
     ("age", "city", "name")
     */
}
```        

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值