Qt 中读取 json 文件以及总结
使用过 C++方式解析 json 的掘友们一定都知道,实在是太痛苦了!用之前还需要添加各种文件,每次获取数据时,只要稍微懈怠忘记了判断是否为 nullptr 就有可能出现崩溃的问题,好难呀!本身 C++写解析就比较麻烦,json 的解析更是长篇大论,最近想尝试下 Qt 中自带的 QJson 的方式对 json 文件的读取,普通的读取查阅资料就有各种方式,这里主要是总结在使用过程中遇到的那些坑,让大家引以为戒~
功能讲解
读取 json 文件
首先介绍下如何进行 json 文件的读取,获取文件中的内容~
与普通的*.txt 文件的读取方式一致,在我们操作 json 文件时,其实是对 QByteArray 中的内容进行处理的。
使用 json 文件对象加载字符串
到这里,我来讲解下遇到的第一个坑吧!
假设你的程序中只是在某一个函数中读取 json 数据,除此之外并没有地方用到,那么恭喜你可以写成局部变量直接使用。
但是,你想要在整个程序的不同地方对 json 进行解析,虽然也是在一个类中操作,但是!需要记住的是,不要多次将 json 文件转换成 QJsonDocument
QJsonDocument:只是提供一种读取和写入 json 文档的方法,不是让我们来回转换的
那我们该使用什么一直获取数据呢?
在这里我们想要多个函数处理 json 文件,比较好用的方式是存储成员变量的QJsonObject
对象。
json 文件转成 json 对象
首先,我们先看一个简单的 json 文件内容
三种情况,1:纯数据,带有数据的以及纯数组方式加载
针对于不同的 json 结构我们是如何读取的呢?
1:first 情况
使用这种方式需要注意的是,"first"这个 key 值一定是必须存在的。
其实还有另一种设置方式,代码如下:
第二种方式也只能适合普通的 json 数据,对于带有数组的 json 就不适合了。
2:second、three 情况
针对于后面的两种情况可以用一种方式来获取
评论