Qt Json序列化与反序列化 Qt的一个用于序列化与反序列化的库 xpack,也可用于c++。 使用方法下载库文件 xpack 标签 - Gitee.com 按照它的默认样子放好,建议单独放一个文件夹 项目引用 不用
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
- README.md · xyz347/xpack - 码云 - 开源中国 (gitee.com)
我记得Qt自己支持一种类的写法,支持class的,但是我找不到那种方法了
会用到 Q_PROPERTY(int y READ y WRITE setY)类似于这样的,但是我找不到了这种方法了,这种好像是Qt自支持的,谁知道记得评论下,啊
谁知道Qt自己的那种Json方法,记得评论下