QJsonDocument:
提供一种读取和写入JSON文档的方法,可以通过它的的成员函数array()或object()检索文档中包含的数组或对象,然后读取JSON数据,或者修改数据。
(资料图)
QJsonObject: 封装了一个JSON对象,
可以使用它的成员函数size()、insert()和remove()来对修改JSON数据.
QJsonArray: 封装了一个JSON数组,用来实现JSON数组的
1.解析JSON-示例
注意:JSON中的Key命名不能相同,否则的话会覆盖掉,比如:
{\"FLAG\": 1,\"FLAG\": \"example\"}
最终只能读取到FLAG的\"example\"值.
json文件示例内容如下:
{\"FLAG\": 1,\"NAME\": \"example\",\"ARRAYS\":[{\"Name\": \"array1\",\"String\": \"哈哈哒1\"},{\"Name\": \"array2\",\"String\": \"哈哈哒2\"},{\"Name\": \"array3\",\"String\": \"哈哈哒3\"},{\"Name\": \"array4\",\"String\": \"哈哈哒4\"}]}
程序如下:
bool parseJson(){//打开文件QFile file(QApplication::applicationDirPath()+\"/1.json\");if(!file.open(QIODevice::ReadOnly)) {qDebug() << \"File open failed!\";} else {qDebug() <<\"File open successfully!\";}QJsonParseError *error=new QJsonParseError;QJsonDocument jdc=QJsonDocument::fromJson(file.readAll(),error);//判断文件是否完整if(error->error!=QJsonParseError::NoError){qDebug()<<\"parseJson:\"<errorString();return false;}QJsonObject obj = jdc.object(); //获取对象qDebug() <<\"object size:\"<打印如下:
写JSON-示例
代码如下:
bool writeJson(){//打开文件QFile file(QApplication::applicationDirPath()+\"/1.json\");if(!file.open(QIODevice::WriteOnly)) {qDebug() << \"File open failed!\";} else {qDebug() <<\"File open successfully!\";}QJsonDocument jdoc;QJsonObject obj;QJsonArray arr;for(int i=1;i<5;i++){QJsonObject Member; //定义数组成员Member[\"Name\"] = QString(\"array%1\").arg(i);Member[\"String\"] = QString(\"哈哈哒%1\").arg(i);arr.append(Member);}obj[\"ARRAYS\"] = arr;obj[\"NAME\"] =\"example\";obj[\"FLAG\"] =\"1\";jdoc.setObject(obj);file.write(jdoc.toJson(QJsonDocument::Indented)); //Indented:表示自动添加/n回车符file.close();}
文件保存如下:
【领 QT开发教程 学习资料, 点击下方链接莬费领取↓↓ ,先码住不迷路~】
点击这里:
标签:
Copyright 2015-2022 南方知识产权网 版权所有 备案号:粤ICP备18023326号-21 联系邮箱:855 729 8@qq.com