当前位置: 首页 > news >正文

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放在同一目录

相关文章:

  • Django 创建表时 “__str__ ”方法的使用
  • buu-ciscn_2019_c_1-好久不见36
  • SpringBoot整合Email 邮件发送详解
  • Python经典游戏:植物大战僵尸(附源码!)
  • mac 意外退出移动硬盘后再次插入移动硬盘不显示怎么办
  • springboot整合modbus实现通讯
  • github用户名密码登陆失效了
  • SolidWorks速成教程P3-7【零件 | 第七节】——3D设计打印手机支架+草图文本草图图片材质与质量属性测量
  • TypeScript 面试题
  • 直线导轨尺寸参数
  • 在Autonomous DB中创建训练数据集
  • 机试刷题_数组中出现次数超过一半的数字【python】
  • Linux上Elasticsearch 集群部署指南
  • UE5中的四元数
  • 【kafka系列】日志存储设计 消息写入、读取
  • 基于CXL内存的热数据检测技术解读
  • SpringCloud面试题----如何保证 Spring Cloud 微服务的安全性
  • 【MySQL】数据库基础知识
  • 数据库脚本MySQL8转MySQL5
  • 基于角色访问控制的UML 表示02
  • 微软宣布全球裁员约3%:涉及约6000人,侧重经理层
  • 30平米的无障碍酒吧里,我们将偏见折叠又摊开
  • 陕西宁强县委书记李宽任汉中市副市长
  • 这个“超强致癌细菌”,宝宝感染率高达40%,预防却很简单
  • 在地球另一端的交流,架起2万公里间更多共赢的桥梁
  • 宜昌全域高质量发展:机制创新与产业重构的双向突围