当前位置 : 主页 > 编程语言 > 其它开发 >

Qt Json序列化与反序列化

来源:互联网 收集:自由互联 发布时间:2022-05-30
Qt Json序列化与反序列化 Qt的一个用于序列化与反序列化的库 xpack,也可用于c++。 使用方法下载库文件 xpack 标签 - Gitee.com 按照它的默认样子放好,建议单独放一个文件夹 项目引用 不用
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
  • README.md · xyz347/xpack - 码云 - 开源中国 (gitee.com)
Other

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


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

上一篇:1688 复杂业务场景下的 Serverless 提效实践
下一篇:没有了
网友评论