#include "widget.h"
#include <QApplication>
#include <data/customer.h>
#include <data/address.h>
int main(int argc, char *argv[])
QApplication a(argc, argv);
QJsonObject customer_json;
Customer* customer = new Customer(NULL,customer_json);
QObject::connect(customer->name,&StringDecorator::valueChanged,[&](){});
QObject::connect(customer->age,&IntDecorator::valueChanged,[&](){});
QObject::connect(customer->defaultAddr,&Address::dataDecoratorsChanged,[&](){});
customer->name->setValue("小明");
customer->age->setValue(23);
customer->defaultAddr->city->setValue("北京市");
customer->defaultAddr->street->setValue("光明街道");
customer->defaultAddr->building->setValue("6号楼");
customer->defaultAddr->postcode->setValue("56788");
Address* new_addr = new Address();
new_addr->city->setValue("西河市");
new_addr->street->setValue("细节街道");
new_addr->building->setValue("6号楼");
new_addr->postcode->setValue("56789");
customer->addresses->addEntity(new_addr);
QJsonObject json_object = customer->toJson();
return a.exec();
通过这种封装,我们就可以实现数据类和Json数据结构之间的相互转化了,同时所有属性都有描述信息,这对于我们的复用和扩展都是很有帮助的。
void Client::StructToJSon(const std::vector<sDefectItem>& vecDefect, QByteArray &jsonArray)
for(int i = 0; i < vecDefect.size(); i++)
QJsonObject rootObj, objStat...
QJsonDoucument
它封装了一个完整的 JSON 文档,并且可以从 UTF-8 编码的基于文本的表示以及 Qt 自己的二进制格式读取和写入该文档。
QJsonArray
JSON 数组是一个值列表。可以通过从数组中插入和删除 QJsonValue 来操作该列表。
QJsonObject
JSON 对象是键值对的列表,其中键是唯一的字符串,值由 QJs
自己根据CMarkup启发,使用QJsonDocument完成类似CMarkup调用的json组装解析实例,内测多次无问题,目前还有优化空间,我的环境是qt5.5,欢迎大家提出不同意见共同进步。
本实例使用数据为测试数据,实际数据可根据业务需求进行扩展。
由于json格式的数据阅读起来简单方便,也便于机器解析与生成。在最近的项目中,使用json格式的数据可以快速的传输,首次使用这种格式,所以把自己的封装数组的使用心得记录下来。
QJsonObject json;
QJsonArray Array;
json.insert("x","100");
json.insert("y","200"...
之前貌似没有看过类似的代码
我们现在的要求就是直接在不知道类成员的情况下,把一个类丢进去就能生成一个Json字符串,也可以把一个字符串和一个类成员丢进去就能根据成员变量名匹配到元素并赋值,大概就这样
中心思想就是Q_PROPERTY宏提供了一个property类型,可以直接通过变量名称获得一个变量名称对应的字符串,比如int a;可以直接获得一个"a"的字符串,而且还可以知道这个a 的类型。并据...