前言:
此时我们对“js对json数据的操作”大约比较看重,我们都需要了解一些“js对json数据的操作”的相关内容。那么小编也在网摘上搜集了一些有关“js对json数据的操作””的相关内容,希望各位老铁们能喜欢,咱们一起来学习一下吧!json 数据
在Qt中常见的数据传输格式为 xml 与 json 这个两种,其中 xml 在1996年提出是一种出现时间相对较久的文件格式,与2002年提出的json相比,他可以标注数据的一些属性,并且可以直接被html识别。相比较来说json就是比较简洁,人的可读性更强。更适合用来传输数据。
json格式:
标准格式:
#JSON字符串{"name":"jobs"}#JSON布尔:必须小写的true和false{"bool":true}#JSON空:必须小写的null{"object":null}
示例:
{ "name" : "mil", "age" : 15, "language": ["zh", "eng"], "course" : [{ "name" : 'math", "score": 66 },{ "name" : "eng", "score": 99 }]}
在Qt中 使用QJsonDocument读写json文件。
类
类说明
QJsonDocument
读写json文档
QJsonObject
封装Json对象
QJsonArry
封装json数组
QJosnValue
封装json值,int,flot,double,{},[]
QJsonObject
QJsonParseError
所选json处理过程中出现的错误
封装 json
void Widget::pkjson(){ QFile jsfile("../test_1.json"); // ---> 封装/保存 json QJsonObject rootObj; QJsonObject professionalObj; professionalObj.insert("english", 4); QJsonArray languageArr; languageArr.append("c"); languageArr.append("c++"); rootObj.insert("name","milo"); rootObj.insert("age",80); rootObj.insert("professional", professionalObj); rootObj.insert("phone","milo"); rootObj.insert("language", languageArr); rootObj.insert("hard","milo"); rootObj.insert("hot","milo"); QJsonDocument jdoc(rootObj); // ---> 打开文件并向文件中添加内容 if(jsfile.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) { QTextStream js(&jsfile); js<< jdoc.toJson(); jsfile.close(); } else { cout << "打开失败"; }}
解析 json
void Widget::exjson(){ // ---> 解包json QFile jsfile("../test_1.json"); if(jsfile.open(QIODevice::ReadOnly)){ // ---> 设置解析报错 QJsonParseError err; // ---> 解释json文件 QJsonDocument jsdoc = QJsonDocument::fromJson(jsfile.readAll(), &err); if(err.error!=QJsonParseError::NoError){ // ---> 如果有报错 cout << "json 格式错误!"; return; } else { // ---> 读取根目录 QJsonObject rootObj = jsdoc.object(); // ---> 读取 key = name 的值 cout << rootObj.value("name").toString(); QJsonArray lanArr = rootObj.value("language").toArray(); cout << lanArr.at(0).toString() << lanArr.at(1).toString(); // ---> 判断key的类型 , 是arry 还是 obj if(rootObj.value("professional").type() == QJsonValue::Object){ cout << "这个key的类型是 obj"; } } jsfile.close(); }}
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。