Qt写入Json文件
lw只吃亿点. 人气:0一、示例Json文件内容
下方为本文所使用的Json文件的内容,其中包含字符串、数值、布尔、null、对象、数组等(写入方式在本文第三节)
{ "array": [ "str", 88, null ], "bool": true, "jChildObj": { "age": 25, "name": "tom" }, "null": null, "number": 66, "str": "String" }
二、Json写入会使用的类(介绍写入所使用的类在本文中的作用,个人理解)
- QJsonDocument:使用其提供的toJson函数获取json串
- QJsonObject:创建用于存储所有类型的根对象,和创建对象类型的变量
- QJsonArray:用于创建数组变量,并存放数组数据
三、Json文件的写入
3.1 常规类型的写入
创建根对象(QJsonObject)
//创建QJsonObject对象(姑且称之为根对象),用于存放需要写入的数据 QJsonObject jObj;
常规对象的添加
//添加字符串类型 jObj.insert("str", "String"); //添加数值类型(在值为具体值时其中的QJsonValue可以不使用,直接放入值本身) jObj.insert("number", QJsonValue(66)); //添加布尔类型 jObj.insert("bool", true); //添加空值(直接放一个QJsonValue对象即可,不传入值时默认为空) jObj.insert("null", QJsonValue());
3.2 对象及数组类型的添加
对象类型
//对象类型需要一个子QJsonObject对象存放,然后在添加到根QJsonObject对象中 QJsonObject jChildObj; //添加值时直接使用如上方法添加具体值即可 jChildObj.insert("name", "tom"); jChildObj.insert("age", 25); //当子对象的值添加完成后将子对象添加到根对象中即可 jObj.insert("jChildObj", jChildObj);
数组类型
//创建数组对象 QJsonArray array; //QJsonArray容器和普通容器的添加方法一样,都可调用append函数 array.append("str"); array.append(88); array.append(QJsonValue()); //数组中元素添加完成后将其添加到根对象中 jObj.insert("array", array);
3.3 Json串写入文件
//创建QJsonDocument对象并将根对象传入 QJsonDocument jDoc(jObj); //打开存放json串的文件 QFile file("./jsonTest2.json"); if(!file.open(QIODevice::WriteOnly)) return 0; //使用QJsonDocument的toJson方法获取json串并保存到数组 QByteArray data(jDoc.toJson()); //将json串写入文件 file.write(data); file.close();
总结
建议学习前先了解一下Json文件格式,组合类型只需将需要的类型添加到存放的类型中即可
相关文章
加载全部内容