spyera,司马张良博客,micro sd卡
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:"<<error->errorstring(); return false; } qjsonobject obj = jdc.object(); //获取对象 qdebug() <<"object size:"<<obj.size(); qstringlist list = obj.keys(); foreach (qstring key, list) { if(obj[key].isstring()) { qdebug()<<"key:"<<key<<"value:"<<obj[key].tostring(); } else if(obj[key].isarray() && key =="arrays") { qjsonarray arr = obj[key].toarray(); for(int i=0;i<arr.count();i++) { qjsonobject arrobj= arr[i].toobject(); qdebug()<<"key:\"name\""<<"value:"<<arrobj["name"].tostring(); qdebug()<<"key:\"string\""<<"value:"<<arrobj["string"].tostring(); } } } return true; }
打印如下:
写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(); }
文件保存如下:
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
如何在没有core文件的情况下用dmesg+addr2line定位段错误
用QT制作3D点云显示器——QtDataVisualization
网友评论