Qt Json序列化与反序列化
Qt Json序列化与反序列化
Qt的一个用于序列化与反序列化的库 xpack,也可用于c++。
使用方法
下载库文件
按照它的默认样子放好,建议单独放一个文件夹
项目引用
不用修改.pro文件,直接在源代码文件里 include相对路径 进来就好了
例如:
- Year.h
#include "../xpack/json.h"
struct Year{
int y;
QString m;
int d;
Year();
XPACK(O(
y,
m,
d
));
};
- main.cpp
#include "../xpack/json.h"
int main(int argc, char* argv[]){
Year y = Year();
y.y = 2022;
y.m = "03";
y.d = 14;
std::string jsonStr = xpack::json::encode(year);
std::cout<< jsonStr <<std::endl;
}
- 应用程序输出
"{\"y\":2022,\"m\":\"03\",\"d\":14}"
- 若存在类嵌套,被嵌套的类需要修改
struct datetime{
Year date;//上面写的那个Year类,需要修改XPACK的写法
int h;
int M;
int s
};
//改为
struct Year{
int y;
QString m;
int d;
Year();
};
//写在struct Year外
XPACK_OUT(Year, O(
y,
m,
d
));
开启Qt支持
- 修改config.h,开启XPACK_SUPPORT_QT这个宏(或者在编译选项开启)
- 当前支持 QString/QMap/QList/QVector
Reference
Other
我记得Qt自己支持一种类的写法,支持class的,但是我找不到那种方法了
会用到 Q_PROPERTY(int y READ y WRITE setY)类似于这样的,但是我找不到了这种方法了,这种好像是Qt自支持的,谁知道记得评论下,啊
谁知道Qt自己的那种Json方法,记得评论下
Qt Json序列化与反序列化的更多相关文章
- WPF中的常用布局 栈的实现 一个关于素数的神奇性质 C# defualt关键字默认值用法 接口通俗理解 C# Json序列化和反序列化 ASP.NET CORE系列【五】webapi整理以及RESTful风格化
WPF中的常用布局 一 写在开头1.1 写在开头微软是一家伟大的公司.评价一门技术的好坏得看具体的需求,没有哪门技术是面面俱到地好,应该抛弃对微软和微软的技术的偏见. 1.2 本文内容本文主要内容 ...
- DotNet的JSON序列化与反序列化
JSON(JavaScript Object Notation)JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.在现在的通信中,较多的采用JSON数据格式,JSON有 ...
- C#中JSON序列化和反序列化
有一段时间没有到博客园写技术博客了,不过每天逛逛博客园中大牛的博客还是有的,学无止境…… 最近在写些调用他人接口的程序,用到了大量的JSON.XML序列化和反序列化,今天就来总结下json的序列化和反 ...
- Newtonsoft.Json 序列化和反序列化 时间格式
From : http://www.cnblogs.com/litian/p/3870975.html 1.JSON序列化 string JsonStr= JsonConvert.SerializeO ...
- Net中JSON序列化和反序列化处理(日期时间特殊处理)
0 缘由 笔者最近在web api端使用Json.Net进行序列化处理,而在调用端使用DataContractSerializer进行反序列化,遇到日期时间处理反序列化不成功[备注:笔者使用Net ...
- Newtonsoft.Json 序列化和反序列化 时间格式 [转]
1.JSON序列化 string JsonStr= JsonConvert.SerializeObject(Entity); eg: A a=new A(); a.Name="Elain ...
- C# JSON 序列化和反序列化——JavaScriptSerializer实现
一. JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据.您无法访问序列化程序的此实例.但是,此类公开了公共 API.因此, ...
- 序列化对象C++对象的JSON序列化与反序列化探索
新手发帖,很多方面都是刚入门,有错误的地方请大家见谅,欢迎批评指正 一:背景 作为一名C++开发人员,我始终很期待能够像C#与JAVA那样,可以省力的进行对象的序列化与反序列化,但到现在为止,还没有找 ...
- C++对象的JSON序列化与反序列化探索完结-列表的序列化与反序列化
在前两篇文章中,我们已经完成对普通对象以及复杂对象嵌套的序列化与反序列化,见如下地址: C++对象的JSON序列化与反序列化探索 C++对象的JSON序列化与反序列化探索续-复杂对象的序列化与反序列化 ...
- C++对象的JSON序列化与反序列化探索续-复杂对象的序列化与反序列化
本文是基本上一篇博文进行改进而成,上一篇请见: C++对象的JSON序列化与反序列化探索 此处就不多说了,直接上代码. 1. 序列化基类 #pragma once #include <strin ...
随机推荐
- MarkDown文档的编写
MarkDown的基本语法 MarkDown的标题语法 通过#进行创建标题,#的数量控制标题的级别 MarkDown的段落语法 通过空白行将一行或者多行文本进行分隔 MarkDown的强调语法 粗 ...
- AE错误代码
错误代码 错误描述 错误名称 HRESULT:0x80040201 "Failed to load a resource (string, icon, bitmap, etc)." ...
- Spring框架IoC核心详解
介绍 IoC(Inversion of Control:控制反转) 是一种设计思想,而不是一个具体的技术实现.IoC 的思想就是将原本在程序中手动创建对象的控制权,交由 Spring 框架来管理,由S ...
- Java性能最后一个领域:去除垃圾回收器
Java性能最后一个领域:去除垃圾回收器 不产生垃圾不等于不创建对象,如果对象创建满足以下几个条件,仍然可以在创建对象之后不需要垃圾回收器: 应用程序或者库在初始化的时候生成有限个数的对象,然后不断复 ...
- [SpringBoot]浏览器输出中文乱码问题解决
问题情境: IDEA.Springboot.浏览器访问接口查看返回的JSON数据,发现中文乱码 解决方案: server: servlet: encoding: charset: UTF-8 enab ...
- 完美解决idea2020一直indexing,无法操作的问题
hello,大家好,2021年的第一篇文章,希望疫情早日过去,大家早日恢复正常生活. 今天主要分享一下在使用idea 2020.3版本开发maven项目的时候,一直出现有效件index, 有时候是sc ...
- 免费学习基于SpringBoot的高考志愿智能推荐系统
免费学习基于SpringBoot的高考志愿智能推荐系统 摘要 科学技术日新月异,人们的生活都发生了翻天覆地的变化,高考志愿智能推荐系统管理当然也不例外.过去的信息管理都使用传统的方式实行,既花费了时间 ...
- DDD你真的理解清楚了吗?怎么准确理解“值对象”
这些年,随着软件业的不断发展,软件系统开始变得越来越复杂而难于维护.这时,越来越多的开发团队开始选择实践DDD领域驱动设计.领域驱动设计是一种非常优秀的软件设计思想,它可以非常好地帮助我们梳理复杂业务 ...
- [转]OpenLayers基于Vue项目的搭建
主要内容上次介绍了什么是OpenLayers以及其他的可以GIS工具,这次说说如何基于Vue搭建OpenLayers的项目,并且实现地图的加载. 一.vue项目搭建1.全局安装vue-cil npm ...
- Qml 中实现水印工具
[写在前面] 在 Qt 的 Quick 模块中,QQuickPaintedItem 是一个非常有用的类,它允许我们在 Qml 中自定义绘制逻辑. 我们可以通过这种方式实现水印工具,包括在文本.图片或整 ...