QJsonObject、QJsonArray相互转换QByteArray_qjsonarray转qbytearray(1)

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

QCoreApplication a(argc, argv);
QJsonObject object;// 构造QJSonObject
object.insert(_id, “2321”);
object.insert(_name,“zhang”);
object.insert(_age,18);
object.insert(_major, “Qt”);

QJsonDocument document=QJsonDocument(object);
QByteArray array = document.toJson();// 转换成QByteArray

// QByteArray转换成QJsonObject
QJsonDocument document2=QJsonDocument::fromJson(array);
QJsonObject object2 = document2.object();

qDebug() << object2.value(_id).toString(); //对应值为QJsonValue
qDebug() << object2.value(_name).toString();
qDebug() << object2.value(_age).toInt();
qDebug() << object2.value(_major).toString();
return a.exec();
}


QJsonArray中嵌套QJsonObject,然后和QByteArray之间转化



#include
#include

// JSON格式的前缀
#define _id “id”
#define _name “name”
#define _major “major”
#define _age “age”

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);

QJsonObject object; //构造两个QJsonObject并插值
object.insert(_id, “1234”);
object.insert(_name,“wang”);
object.insert(_age,20);
object.insert(_major,“C++”);
QJsonObject object2;
object2.insert(_id,“2321”);
object2.insert(_name,“he”);
object2.insert(_age,15);
object2.insert(_major,“Python”);

QJsonArray array; // 构造QJsonArray
array.insert(0,“234”);//插入字符串QString
array.insert(1,object);//插入QJsonObject
array.insert(2,object2);
// QJsonArray转换成QByteArray
QJsonDocument document=QJsonDocument(array);
QByteArray byte_array = document.toJson();

// QByteArray转换成QJsonArray
QJsonDocument document2=QJsonDocument::fromJson(byte_array);
QJsonArray array2 = document2.array();
QString title = array2.at(0).toString();
qDebug() << "title: " << title;
qDebug() << “…”;
for(int i = 1; i < array2.size(); ++i)
{
QJsonObject json = array2.at(i).toObject(); //QJsonArray里面第二、三元素为QJsonObject
qDebug() << json.value(_id).toString();//QJsonValue转换为对应类型
qDebug() << json.value(_name).toString();
qDebug() << json.value(_age).toInt();
qDebug() << json.value(_major).toString();
qDebug() << “…”;
}

return a.exec();
}



![img](https://img-blog.csdnimg.cn/img_convert/d282e979ebfd27f13efebd99f15c696c.png)
![img](https://img-blog.csdnimg.cn/img_convert/4fcb6058be55d662c1effb14e2324c1c.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618668825)**

源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618668825)**

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值