由于json格式的数据阅读起来简单方便,也便于机器解析与生成。在最近的项目中,使用json格式的数据可以快速的传输,首次使用这种格式,所以把自己的封装数组的使用心得记录下来。

QJsonObject json;

QJsonArray   Array;

   json.insert("x","100");
    json.insert("y","200");

Array.push_back(json);

QJsonDocument jsonDoc(Array);

QByteArray strArray = jsonDoc.toJson(QJsonDocument::Indented);

QString string(strArray);

QJsonObject strjson;

strjson.insert("date",string);

strjson.insert("time","2018.10.19");

QJsonDocument strdocument;

strdocument.setObjects(strjson);

 QByteArray Ary = strdocument.toJson(QJsonDocument::Indented);

最终的结果为{"date" : "[ {"ux" : "100" , "uy" : "200"} ]" ,"time" : "2018.10.19"}

解析上面的json数据

QJsonParseError error;

QJsonDocument document = QJsonDocument::fromJson(Ary, &jsonError);

if(!document.isNull() &&(error.error = QJsonParseError::NoError)

if(document.isObject())

QJsonObject object = document.object();

QJsonObject::Iterator it;

for(it = object.begin;it != object.end;it++)

QString key = it.key();

QString value = it.value().toString();

if("time" == key)

qDebug()<<"time:"<<value;

if("date" == key)

if(it.value.isArray())

QJsonArray array = it.value().toString();

for(int i = 0;i < array.count(); i ++)

QJsonValue value = array.at(i);

QJsonObject object = value.toObject();//转化为对象

QJsonObject::Iterator it;

for(it = object.begin();it != object.end();it ++)

QString key = it.key();

QString value = it.value().toString();

if("ux" == key)

qDebug()<<"ux:"<<value;

if("uy" == key)

qDebug()<<"uy:"<<value;

由于json格式的数据阅读起来简单方便,也便于机器解析与生成。在最近的项目中,使用json格式的数据可以快速的传输,首次使用这种格式,所以把自己的封装数组的使用心得记录下来。        QJsonObject json;        QJsonArray   Array;   json.insert(&quot;x&quot;,&quot;100&quot;);    json.insert(&quot;y&quot;,&quot;200&quot;... 一、 json 格式 简介 JSON 是一种轻量级的 数据 交换 格式 ,采用key-value键值对的方式来存储 数据 ,主要用于网络通讯传输、本地配置文件等,易于人阅读和编写。 2、 json 的对象和数组 对象:采用大括号{},括起来, 间的以key-value的形式存储,形如{“name”:“ISmileLi”}。 数组:采用 括号[... JSON 数组 ----> 相当于一个数组,可以用来存放:int char ,类类型 在 数据 封装的 格式 使用 符号“{ }" 代表 JSON 对象 使用 符号"[]"代表数组 JSON 对象和 JSON 数组的关系: JSON 对象可以嵌套 JSON 数组 JSON 数组可以嵌套 JSON 对象 JSON 对象可以嵌套 JSON 对象 前几天遇到这样一个场景,在S端我要 使用 C++发送一个 json 格式 的字符串,在C端要 解析 ,所以怎么 使用 C++来 解析 和包装 json 呢?Java里面比较简单, 使用 Map就可以实现,但是C++不行。经过查询,有两种方法,一种是 使用 框架nlohmann,一种是 Qt 支持 Json ,但是说实话不太人性化,资料也比较少。经过一段时间 使用 nlohmann,发现如果字符串为空就会报异常,所以我最终还是选择了 Qt 的方法,毕竟这个项目就是 Qt 做的嘛,这样一致性好些,也不用再加外来的库了 json 格式 具体有几
自己根据CMarkup启发, 使用 Q Json Document完成类似CMarkup调用的 json 组装 解析 实例,内测多次无问题,目前还有优化空间,我的环境是 qt 5.5,欢迎大家提出不同意见共同进步。 本实例 使用 数据 为测试 数据 ,实际 数据 可根据业务需求进行扩展。
#include <Q Json Document> // json 文件 #include <Q Json Object> // json 对象 #include <Q Json Array> //Q Json Object数组 1>、 Qt Json 的组装结构 Q Json Document //整个双...
00. 目录 文章目录00. 目录01. Q Json Value类介绍02. Q Json Value成员方法03. Q Json Value成员方法介绍04. 附录 01. Q Json Value类介绍 Header: #include <Q Json Value> qmake: QT += core Since: Qt 5.0 Q Json Value类封装了 JSON 的值。 JSON 的值有6种基...
Qt ,可以 使用 Q Json Document 类来封装和 解析 JSON 格式 数据 。以下是一个简单的示例,演示如何将 数据 封装为 JSON 格式 ,然后将其 解析 回来: ```cpp #include <Q Json Document> #include <Q Json Object> // 封装 JSON 格式 数据 Q Json Object json Object; json Object["name"] = "张三"; json Object["age"] = 30; json Object["married"] = true; Q Json Document json Doc( json Object); QByteArray json Data = json Doc.to Json (); // 解析 JSON 格式 数据 Q Json Document json Doc2 = Q Json Document::from Json ( json Data); Q Json Object json Object2 = json Doc2.object(); QString name = json Object2["name"].toString(); int age = json Object2["age"].toInt(); bool married = json Object2["married"].toBool(); 在上面的示例 ,我们首先创建了一个 Q Json Object 对象,并添加了一些键值对。然后,我们 使用 Q Json Document 类的 to Json () 函数将其序列化为 JSON 格式 数据 ,并将其存储在 QByteArray 。 接下来,我们 使用 Q Json Document 类的静态函数 from Json () 将 JSON 格式 数据 解析 回来,并将其存储在另一个 Q Json Object 对象 。我们可以通过键名访问 Q Json Object 的值,并 使用 相应的 toXXX() 函数将其转换为适当的类型。 注意:在实际应用 ,我们应该在 解析 JSON 格式 数据 时,先检查每个键是否存在,以避免出现异常情况。