Qt中如何解析Json数据
2017-09-26 20:19
501 查看
Qt5中提供了很方便的用于解析Json数据的类,主要包括QJsonValue,QJsonArray,QJsonObject,QJsonDocument等。使用这几个类能够很轻易在C++端创建和处理Json格式的数据,或对Json数据进行序列化及反序列化等。
QJsonValue类是用于保存所有类型的Json数据,它将Json数据归为下列6种基本类型:
bool QJsonValue::Bool double QJsonValue::Double string QJsonValue::String array QJsonValue::Array object QJsonValue::Object null QJsonValue::Null
因此QJsonValue可以保存上述这6种类型的Json数据,并可以转换对应的C++类。如下示例
QJsonValue qJsnVal; if(qJsnVal.isBool()){ //如果是布尔类型,可以转换C++的bool类型 bool bValue = qJsnVal.toBool(); }else if(qJsnVal.isDouble()){ //如果是数值类型,可以转换C++的double类型 double dValue = qJsnVal.toDouble(); //也可以转换为int类型 int iValue = qJsnVal.toInt(); }else if(qJsnVal.isString()){ //如果是字符串类型,可以转换QStrint进行解析 QString qStrValue = qJsnVal.toString(); }else if(qJsnVal.isObject()){ //如果是Json对象,可以转换QJsonObject进行解析 QJsonObject qJsnObj = qJsnVal.toObject(); }else if(qJsnVal.isArray()){ //如果是Json数组,可以转换QJsonArray进行解析 QJsonArray qJsnArr = qJsnVal.toArray(); }else if(qJsnVal.isNull()){ //可以判断是否是js端的null类型 }else if(qJsnVal.isUndefined()){ //可以判断是否是js端的undefined类型 }
QJsonObject类是用来解析json对象值的,其主要常用的方法有insert, value, take等
QJsonObject qjsonObj;
qjsonObj.insert("key1", "value1"); //insert方法的第二个入参是QJsonValue类型,因此可以传入各种基本类型的json数据
qjsonObj.insert("key2", 3.14);
qjsonObj.insert("key3", true);
//此时qjsonObj的内容是:{key1:"value", key2:3.14, key3: true}
QString value1 = qjsonObj.value("key1").toString(); //value1值为"value1"
//QJsonObjec的value方法是取出json对象的某个属性值,但不删除该属性,因此此时
//qjsonObj的内容仍然是:{key1:"value", key2:3.14, key3: true}
bool value3 = qjsonObj.take("key3").toBool(); //value3值为true
//QJsonObjec的take方法是取出json对象的某个属性值,并删除该属性,因此此时
//qjsonObj的内容变成了:{key1:"value", key2:3.14}
相关文章推荐
- 在Qt中如何通过QJson 解析json数据
- 如何在Qt C++中解析JSON数据并使之被QML应用
- 前端开发中如何解析json数据(一)
- JAVA如何解析多层json数据
- 前端开发中如何解析json数据(二)
- 如何解析DELPHI XE5服务器返回的JSON数据(翻译)及中文乱码
- Qt实现简易天气预报(解析的是json数据)
- Qt 之 QJsonDocument 解析json 数据
- JS解析json数据(如何将json字符串转化为数组)
- JS解析json数据(如何将json字符串转化为数组)
- 如何使用JSON Framework库解析与生成json数据(iphone网络篇二)
- 问题集录--JS如何处理和解析Json数据
- jquery 是如何解析json数据
- JS解析json数据(如何将json字符串转化为数组)
- JS解析json数据(如何将json字符串转化为数组)
- SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
- php的老兄传给客户端[object object]数据如何解析,但他坚称是json...
- 如何把Ext.data.store里的数据一次性用JSON传给后台(添加了后台解析部分)
- 【Python】 如何解析json数据结构
- Android网络开发中如何使用JSON进行网络通信---Android_JSON数据通讯方法解析