QT简单使用QJsonObject,包括写入数据,读取,遍历,以及转换成字符串

博客介绍了QJsonObject简单使用的接口,给出使用部分接口的代码示例。当使用take函数获取的数据是JsonValue时会报错,解决办法是先调用toVariant()转换成变量,再调用toString()等方法转换成相应数据类型,还提及了代码输出结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 QJsonObject 简单使用的接口

在这里插入图片描述

2 使用以上部分接口的代码示例

使用take函数获取的数据是JsonValue的,则会爆以下的错误
在这里插入图片描述
解决办法:
先调用toVariant()转换成变量,再调用toString()转换成字符串,当然,如果像转换成其他数据类型也可以,例如toInt() , toBool , toObject(),

 QJsonObject obj;
    //写入信息
    obj.insert("name","张三");
    obj.insert("age",16);
    obj.insert("role","学生");

    //根据key获取具体的值
    qDebug() << "获取学生的角色" << obj.take("role");
    qDebug() << "获取学生的名字" << obj["name"];


    //遍历输出
    QStringList keyList = obj.keys();
    for(QString key : keyList){
        qDebug() << key << obj[key];
    }


    //转换成字符串,直接+toString()是会输出为空的,要先转换成变量
    QString msg1 = obj.take("age").toVariant().toString();
    QString msg2 = obj.take("age").toString();
    qDebug() << "msg1:" << msg1;
    qDebug() << "msg2:" << msg2;
    

3 代码输出结果

获取学生的角色 QJsonValue(string, "学生")
获取学生的名字 QJsonValue(string, "张三")
"age" QJsonValue(double, 16)
"name" QJsonValue(string, "张三")
msg1: "16"
msg2: ""
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值