Qt中如何实现Json数据的序列化及反序列化操作?

2026-05-05 23:053阅读0评论SEO问题
  • 内容介绍
  • 相关推荐

本文共计464个文字,预计阅读时间需要2分钟。

Qt中如何实现Json数据的序列化及反序列化操作?

Qt JSON序列化与反序列化库,xpack,支持C++。下载库文件+xpack,按照默认子目录放置,建议单独建一个文件夹+项目引用+不使用。

Qt Json序列化与反序列化

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

Qt中如何实现Json数据的序列化及反序列化操作?

使用方法 下载库文件

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
  • README.md · xyz347/xpack - 码云 - 开源中国 (gitee.com)
Other

我记得Qt自己支持一种类的写法,支持class的,但是我找不到那种方法了
会用到 Q_PROPERTY(int y READ y WRITE setY)类似于这样的,但是我找不到了这种方法了,这种好像是Qt自支持的,谁知道记得评论下,啊


谁知道Qt自己的那种Json方法,记得评论下

本文共计464个文字,预计阅读时间需要2分钟。

Qt中如何实现Json数据的序列化及反序列化操作?

Qt JSON序列化与反序列化库,xpack,支持C++。下载库文件+xpack,按照默认子目录放置,建议单独建一个文件夹+项目引用+不使用。

Qt Json序列化与反序列化

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

Qt中如何实现Json数据的序列化及反序列化操作?

使用方法 下载库文件

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
  • README.md · xyz347/xpack - 码云 - 开源中国 (gitee.com)
Other

我记得Qt自己支持一种类的写法,支持class的,但是我找不到那种方法了
会用到 Q_PROPERTY(int y READ y WRITE setY)类似于这样的,但是我找不到了这种方法了,这种好像是Qt自支持的,谁知道记得评论下,啊


谁知道Qt自己的那种Json方法,记得评论下