Qt 解释JSon数据
jsondata={"cmd":"meetingmemberlist","memberinfos":[{"name":"李","number":"668162","status":"Offline"},{"name":"66668888","status":"Offline"},{"name":"1.221","number":"1234561","status":"Offline"},{"name":"1.42","status":"Offline"}],"session":"2989479764ll","touid":"19","xns":"18"}
void CEMViewMenuInteraction::get_memberdata_from_jsondate(std::string jsondata)
{
QByteArray ByteArr = QByteArray(jsondata.c_str());
//判断字符串转化为 QJsonDocument 是否出现了错误
QJsonParseError jsonError;//Qt5新类
QJsonDocument jsonDoc = QJsonDocument::fromJson(ByteArr, &jsonError);//Qt5新类
if (jsonError.error == QJsonParseError::NoError)
{
// qDebug()<< "parse jsondata";
if (jsonDoc.isObject())
{
QJsonObject rootObj = jsonDoc.object();
QString cmd;
QString session;
//是否含有key cmd
if (rootObj.contains("cmd"))
{
//取出key为rootpath的值
QJsonValue value = rootObj.value("cmd");
//判断是否是string类型
if (value.isString())
{
cmd = value.toString();
// qDebug()<< "cmd=" <<cmd;
}
}
if (rootObj.contains("session"))
{
//取出key为 session 的值
QJsonValue value = rootObj.value("session");
//判断是否是string类型
if (value.isString())
{
session = value.toString();
// qDebug()<< "session=" << session;
}
}
if (rootObj.contains("memberinfos"))
{
QJsonValue valueArray = rootObj.value("memberinfos");
//判断类型是否为array,并且将array遍历出来
if (valueArray.isArray())
{
QJsonArray jsonArray = valueArray.toArray();
QString child_name = "null";
QString child_status = "null";
for (int i = ; i < jsonArray.count();i++)
{
QJsonValue childValue = jsonArray[i];
if (childValue.isObject())
{
QJsonObject childObject = childValue.toObject();
if (childObject.contains("name"))
{
QJsonValue valueJson = childObject.value("name");
if (valueJson.isString())
{
child_name = valueJson.toString();
// qDebug()<< "name=" <<child_name;
}
}
if (childObject.contains("status"))
{
QJsonValue valueJson = childObject.value("status");
if (valueJson.isString())
{
child_status = valueJson.toString();
// qDebug()<< "status=" <<child_status;
}
}
m_MemberListMap[child_name] = child_status;
}
}
}
} }
}
}
Qt 解释JSon数据的更多相关文章
- Qt解析Json数据
1 JSON数据简介 JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范) ...
- 初探原生js根据json数据动态创建table
初探原生js根据json数据动态创建table 小生以实习生的职位进入了一家非纯软件的公司做asp.net开发,大半个月下来发现公司里居然没有前端工程师,这令我很诧异,跟着公司做项目,发现前端后台没有 ...
- Qt读取JSON和XML数据
QJSON JSON(JavaScript Object Notation)是一个轻量级的数据交换格式; 可以将数据以name/value的形式任意组合; QJson 是一个基于Qt的库, 将JSON ...
- JSON - 使用cJSON 解析Qt通过UDP发送的JSON数据
1,cJSON支持在C程序中创建和解析JSON数据,其提供多种方法供C程序使用,最直接的是将cJSON.c和cJSON.h加入到C工程中,源代码:https://github.com/DaveGamb ...
- QT使用QJson生成解析Json数据的方法
QT中使用json还是比较方便的,下面用例子直接说明 举例子之前首先推荐一个在线解析json格式的网站,具体格式用法如下图所示: 之后根据这个格式进行json数据解析. QT使用json需要包含的头文 ...
- Qt QJson解析json数据
Qt QJson解析json数据 //加载根目录文件 void TeslaManageData::loadRootFolderFiles() { QNetworkAccessManager *mana ...
- QT json数据的应用(cJSON)
json数据可保存小量的数据在本地的json文件中.QT有两种方式操作:(1).cJSON (2).QT的操作json数据的类. 应用:将监控预案数据保存在本地中. 1.首先根据预案结构创建一个jso ...
- ASP.NET提取多层嵌套json数据的方法
本文实例讲述了ASP.NET利用第三方类库Newtonsoft.Json提取多层嵌套json数据的方法,具体例子如下. 假设需要提取的json字符串如下: {"name":&quo ...
- 关于ThinkPHP3.2框架接收不到json数据的解决办法
原因分析: 在tp框架中,我们经常使用的 I 方法是加过验证和默认的函数过滤的.所以我们接收的值当我们json_decode的时候就会出现空的字段 那么我们是不是又会像网上说的不用 I 方法用 $_ ...
随机推荐
- 【转帖】samba的配置文件smb.conf详细说明
samba的配置文件smb.conf详细说明 https://blog.csdn.net/cqboy1991/article/details/9791033 找时间自己写一个blog 说明一下搭建过程 ...
- hanlp分词工具应用案例:商品图自动推荐功能的应用
本篇分享一个hanlp分词工具应用的案例,简单来说就是做一图库,让商家轻松方便的配置商品的图片,最好是可以一键完成配置的. 先看一下效果图吧: 商品单个推荐效果:匹配度高的放在最前面 这个想法很好,那 ...
- [转] zookeeper 本地启动多节点
1. zoo.cfg配置文件如下: # The number of milliseconds of each tick tickTime=2000 # The number of ticks that ...
- MySql设计表中的create_time和update_time字段
一般create_time和update_time字段的类型为datetime类型,长度为0
- 洛谷 P4198 楼房重建 线段树维护单调栈
P4198 楼房重建 题目链接 https://www.luogu.org/problemnew/show/P4198 题目描述 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上 ...
- 第8章:LeetCode--算法:二叉树的创建、遍历、删除、求高度
创建> 需要给定一个root的key,所有小于这个key的放到左边,大于key的放到右边, 比如vector<int> tree = {5,2,7,1,9,3,8},最后的树: 5 ...
- MySQL SELECT语法(二)SELECT...INTO语法
源自MySQL 5.7 官方手册 SELECT...INTO Syntax 一.SELECT...INTO介绍 SELECT...INTO用来将查询结果存储在变量或者写入文件中. SELECT ... ...
- scala的泛型浅析
1. scala泛型浅析 package com.dtspark.scala.basics /** * 1,scala的类和方法.函数都可以是泛型. * * 2,关于对类型边界的限定分为上边界和下边界 ...
- linux 最常用命令
1.创建文件.文件夹 touch 文件名 mkdir 文件夹 2.文件赋权 filename 3.查看文件大小 work/testing ll -h .查找文件 find / -name 'filen ...
- 2.SpringMVC执行流程
SpringMVC 执行流程: 执行流程简单分析: 1.浏览器提交请求到中央调度器 2.中央调度器直接将请求转给处理器映射器 3.处理器映射器会根据请求,找到处理该请求的处理器,并将其封装为处理器执行 ...