QxOrm生成json
下载Qxorm-1.5版本
使用vs打开项目,直接生成即可:
lib目录中会生成dll和lib文件
新建Qt项目使用Qxorm:
将QxOrm中上面三个目录拷贝到新建的Qt项目中
pro文件添加使用QxOrm第三方库
INCLUDEPATH += $$PWD/include/
LIBS += -L"$$PWD/lib"
LIBS += -l"QxOrmd"
JsonModel.h
#pragma once
#include <QString>
#include <QxOrm.h>
class JsonModel
{
public:
JsonModel() : id(0) { }
~JsonModel() { }
long id;
QString name;
int age;
};
QX_REGISTER_HPP_EXPORT_DLL(JsonModel, qx::trait::no_base_class_defined, 0)
class JsonModel2
{
public:
JsonModel2() : id(0) { }
~JsonModel2() { }
long id;
QString name;
int age;
JsonModel model;
};
QX_REGISTER_HPP_EXPORT_DLL(JsonModel2, qx::trait::no_base_class_defined, 0)
JsonModel.cpp
#include "JsonModel.h"
QX_REGISTER_CPP_EXPORT_DLL(JsonModel)
namespace qx
{
template <> void register_class(QxClass<JsonModel>& t)
{
t.setName("JsonModel");
// 注册 JsonModel::id <=> 数据库中的主键
t.id(&JsonModel::id, "id");
// 注册 JsonModel::name 属性,使用的 key 是 name,version 是 1。
t.data(&JsonModel::name, "name");
// 注册 JsonModel::age 属性,使用的 key 是 age。
t.data(&JsonModel::age, "age");
}
}
QX_REGISTER_CPP_EXPORT_DLL(JsonModel2)
namespace qx
{
template <> void register_class(QxClass<JsonModel2>& t)
{
t.setName("JsonModel2");
// 注册 JsonModel2::id <=> 数据库中的主键
t.id(&JsonModel2::id, "id");
// 注册 JsonModel2::name 属性,使用的 key 是 name,version 是 1。
t.data(&JsonModel2::name, "name");
// 注册 JsonModel2::age 属性,使用的 key 是 age。
t.data(&JsonModel2::age, "age");
t.data(&JsonModel2::model, "model");
}
}
main.cpp
#include <QApplication>
#include "JsonModel.h"
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
JsonModel json;
json.id = 1;
json.age = 100;
json.name = "gt";
JsonModel2 json2;
json2.id = 2;
json2.age = 200;
json2.name = "gt2";
json2.model = json;
QString jsonStr = qx::serialization::json::to_string(json2);
return app.exec();
}
注意运行时要把QxOrmd.dll和exe放在同一目录