Qt Json序列化与反序列化

Qt的一个用于序列化与反序列化的库 xpack,也可用于c++。

使用方法

下载库文件

xpack 标签 - Gitee.com

按照它的默认样子放好,建议单独放一个文件夹

项目引用

不用修改.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序列化与反序列化的更多相关文章

  1. WPF中的常用布局 栈的实现 一个关于素数的神奇性质 C# defualt关键字默认值用法 接口通俗理解 C# Json序列化和反序列化 ASP.NET CORE系列【五】webapi整理以及RESTful风格化

    WPF中的常用布局   一 写在开头1.1 写在开头微软是一家伟大的公司.评价一门技术的好坏得看具体的需求,没有哪门技术是面面俱到地好,应该抛弃对微软和微软的技术的偏见. 1.2 本文内容本文主要内容 ...

  2. DotNet的JSON序列化与反序列化

    JSON(JavaScript Object Notation)JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.在现在的通信中,较多的采用JSON数据格式,JSON有 ...

  3. C#中JSON序列化和反序列化

    有一段时间没有到博客园写技术博客了,不过每天逛逛博客园中大牛的博客还是有的,学无止境…… 最近在写些调用他人接口的程序,用到了大量的JSON.XML序列化和反序列化,今天就来总结下json的序列化和反 ...

  4. Newtonsoft.Json 序列化和反序列化 时间格式

    From : http://www.cnblogs.com/litian/p/3870975.html 1.JSON序列化 string JsonStr= JsonConvert.SerializeO ...

  5. Net中JSON序列化和反序列化处理(日期时间特殊处理)

    0  缘由 笔者最近在web api端使用Json.Net进行序列化处理,而在调用端使用DataContractSerializer进行反序列化,遇到日期时间处理反序列化不成功[备注:笔者使用Net ...

  6. Newtonsoft.Json 序列化和反序列化 时间格式 [转]

    1.JSON序列化 string JsonStr= JsonConvert.SerializeObject(Entity); eg:   A a=new A(); a.Name="Elain ...

  7. C# JSON 序列化和反序列化——JavaScriptSerializer实现

    一. JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据.您无法访问序列化程序的此实例.但是,此类公开了公共 API.因此, ...

  8. 序列化对象C++对象的JSON序列化与反序列化探索

    新手发帖,很多方面都是刚入门,有错误的地方请大家见谅,欢迎批评指正 一:背景 作为一名C++开发人员,我始终很期待能够像C#与JAVA那样,可以省力的进行对象的序列化与反序列化,但到现在为止,还没有找 ...

  9. C++对象的JSON序列化与反序列化探索完结-列表的序列化与反序列化

    在前两篇文章中,我们已经完成对普通对象以及复杂对象嵌套的序列化与反序列化,见如下地址: C++对象的JSON序列化与反序列化探索 C++对象的JSON序列化与反序列化探索续-复杂对象的序列化与反序列化 ...

  10. C++对象的JSON序列化与反序列化探索续-复杂对象的序列化与反序列化

    本文是基本上一篇博文进行改进而成,上一篇请见: C++对象的JSON序列化与反序列化探索 此处就不多说了,直接上代码. 1. 序列化基类 #pragma once #include <strin ...

随机推荐

  1. Dapr-4: 交通管制示例应用

    第 4 章 交通管制示例应用 Introduction to the Traffic Control sample application | Microsoft Docs 在前面的章节种,你已经学习 ...

  2. Xshell无法连接22端口问题解决办法汇总

    Xshell软件在进行远程连接过程中,会出现端口连接报错的问题,提示:"该IP地址的22端口连接失败",这是怎么回事?今天小编就xshell软件无法连接22端口的问题,整理相关情形 ...

  3. Qt/C++开发经验小技巧286-290

    国内站点:https://gitee.com/feiyangqingyun 国际站点:https://github.com/feiyangqingyun 很多时候项目越写越大,然后就可能遇到,明明之前 ...

  4. Qt开发经验小技巧226-230

    qtc开发工具内置了不少的函数,可以很方便的进行一些判断和处理. //最小版本要求 !minQtVersion(5, 15, 2) { message("Cannot build Qt In ...

  5. [转]Clion中如何使用矩阵库eigen

    CMakelist文件内容如下: cmake_minimum_required(VERSION 3.2) project(PISO) set(CMAKE_CXX_STANDARD 14) includ ...

  6. Pycharm IDE中导入和移除python项目

    1.Pycharm导入python项目 进入PyCharm后,点击File→Open,然后在弹窗中选择需要导入项目的文件夹: 打开了python项目后,需要配置该项目对应的python才可以正常运行: ...

  7. 记录uniapp上传图片转base64

    // 图片转base64 imageToBase64() { return new Promise((reslove, reject) => { uni.getFileSystemManager ...

  8. Jmeter使用(1)_返回结果作为下一个的参数

    一.用户登录返回结果 {{"code":200, "token":"dbfab2d6c79e4981a86775f"}} 二.查询信息接口h ...

  9. Solution Set -「LOCAL」冲刺省选 Round I

    \(\mathscr{Summary}\)   状态还行叭.   A 题又犯坏习惯,走起来就大力分讨,上了个厕所之后冷静一下开始寻找比较普适性的 DP 状态,然后几乎就切掉了,可惜复杂度写假了没发现( ...

  10. SpringCloud Alibaba(四) - Nacos 配置中心

    1.环境搭建 1.1 依赖 <!-- nacos注册中心 注解 @EnableDiscoveryClient --> <dependency> <groupId>c ...