当前位置:网站首页>Qt实现json解析
Qt实现json解析
2022-07-05 10:01:00 【InfoQ】
前提要点
1. 首先获取地址 读取json文件
QFile file(QString::fromStdString(json));
bool bOpen = file.open(QIODevice::ReadOnly);
if (bOpen == false)
{
return item;
}
QByteArray data = file.readAll();
file.close();
QIODevice::ReadOnly2.# 将数据转化为json可读
1. 首先
QJsonDocument doc = QJsonDocument::fromJson(data);//读写json文档
if (!doc.isObject())
{
return item;
}
QJsonDocument::fromJson(data)2.显示关键字所对应的内容
QStringList keys = obj.keys();
for(int i=0;i<keys.size();i++)
{
qDebug() << "key" << i << " is:" << keys.at(i);
}
3.json文件读取的不同方式,以及他的类型
1.第一种json格式
{
"optionA": "aaa",
"optionB": "bbbb",
"score": 3
}
QJsonObject obj = doc.object();//封装json对象
item.content = obj["content"].toString().toStdString();
item.optionA = obj["optionA"].toString().toStdString();
item.optionB = obj["optionB"].toString().toStdString();
item.score = obj["score"].toInt();//int 类型 直接toint 不用转为字符串
2.第二种json格式
"questinList": [{
"optionA": "aaa",
"optionB": "bbbb",
}, {
"optionA": "aaa",
"optionB": "bbbb",
}]
QJsonArray questinlist = root["questinlist"].toArray();
for(int i = 0; i < questinlist.count(); i++)
{
QJsonObject obj = questinlist.at(i).toObject();
item.content = obj["content"].toString().toStdString();
item.optionA = obj["optionA"].toString().toStdString();
item.optionB = obj["optionB"].toString().toStdString();
data.questinList.push_back(item);
}
边栏推荐
- Hard core, have you ever seen robots play "escape from the secret room"? (code attached)
- What is the most suitable book for programmers to engage in open source?
- C function returns multiple value methods
- Workmanager Learning one
- Comparison of batch merge between Oracle and MySQL
- Coffeescript Chinese character to pinyin code
- 程序员搞开源,读什么书最合适?
- leetcode:1200. 最小绝对差
- [system design] index monitoring and alarm system
- 请问postgresql cdc 怎么设置单独的增量模式呀,debezium.snapshot.mo
猜你喜欢
随机推荐
程序员如何活成自己喜欢的模样?
> Could not create task ‘:app:MyTest.main()‘. > SourceSet with name ‘main‘ not found.问题修复
Advanced opencv:bgr pixel intensity map
AtCoder Beginner Contest 258「ABCDEFG」
【小技巧】获取matlab中cdfplot函数的x轴,y轴的数值
Lepton 无损压缩原理及性能分析
请问postgresql cdc 怎么设置单独的增量模式呀,debezium.snapshot.mo
Implementation of smart home project
Comparison of batch merge between Oracle and MySQL
Workmanager learning 1
Have the bosses ever encountered such problems in the implementation of flinksql by Flink CDC mongdb?
Have you learned to make money in Dingding, enterprise micro and Feishu?
驱动制造业产业升级新思路的领域知识网络,什么来头?
@SerializedName注解使用
RMS to EAP is simply implemented through mqtt
Redis如何实现多可用区?
官网给的这个依赖是不是应该为flink-sql-connector-mysql-cdc啊,加了依赖调
vscode的快捷键
《剑来》语句摘录(七)
面试:List 如何根据对象的属性去重?







