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 ...
随机推荐
- Dapr-4: 交通管制示例应用
第 4 章 交通管制示例应用 Introduction to the Traffic Control sample application | Microsoft Docs 在前面的章节种,你已经学习 ...
- Xshell无法连接22端口问题解决办法汇总
Xshell软件在进行远程连接过程中,会出现端口连接报错的问题,提示:"该IP地址的22端口连接失败",这是怎么回事?今天小编就xshell软件无法连接22端口的问题,整理相关情形 ...
- Qt/C++开发经验小技巧286-290
国内站点:https://gitee.com/feiyangqingyun 国际站点:https://github.com/feiyangqingyun 很多时候项目越写越大,然后就可能遇到,明明之前 ...
- Qt开发经验小技巧226-230
qtc开发工具内置了不少的函数,可以很方便的进行一些判断和处理. //最小版本要求 !minQtVersion(5, 15, 2) { message("Cannot build Qt In ...
- [转]Clion中如何使用矩阵库eigen
CMakelist文件内容如下: cmake_minimum_required(VERSION 3.2) project(PISO) set(CMAKE_CXX_STANDARD 14) includ ...
- Pycharm IDE中导入和移除python项目
1.Pycharm导入python项目 进入PyCharm后,点击File→Open,然后在弹窗中选择需要导入项目的文件夹: 打开了python项目后,需要配置该项目对应的python才可以正常运行: ...
- 记录uniapp上传图片转base64
// 图片转base64 imageToBase64() { return new Promise((reslove, reject) => { uni.getFileSystemManager ...
- Jmeter使用(1)_返回结果作为下一个的参数
一.用户登录返回结果 {{"code":200, "token":"dbfab2d6c79e4981a86775f"}} 二.查询信息接口h ...
- Solution Set -「LOCAL」冲刺省选 Round I
\(\mathscr{Summary}\) 状态还行叭. A 题又犯坏习惯,走起来就大力分讨,上了个厕所之后冷静一下开始寻找比较普适性的 DP 状态,然后几乎就切掉了,可惜复杂度写假了没发现( ...
- SpringCloud Alibaba(四) - Nacos 配置中心
1.环境搭建 1.1 依赖 <!-- nacos注册中心 注解 @EnableDiscoveryClient --> <dependency> <groupId>c ...