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

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


http://www.kler.cn/a/549698.html

相关文章:

  • 2025年2月16日笔记
  • 如何使用 HPjtune 分析 Java GC 日志并优化 JVM 性能
  • 性格测评小程序07用户登录
  • 如何利用AI一键生成PPT,提升工作效率和创意灵感
  • Effective Objective-C 2.0 读书笔记——协议和分类
  • LLaMa Factory 安装
  • HarmonyOS 5.0应用开发——Canvas制作个人签名
  • 微软官方出品GPT大模型编排工具:7个开源项目
  • mysql快照读当前读
  • LlamaFactory可视化模型微调-Deepseek模型微调+CUDA Toolkit+cuDNN安装
  • 缓存的介绍
  • STM32的DMA解释
  • hivemetastore 连接过多导致sql查询慢
  • Fiori APP配置中的Semantic object 小bug
  • 如何避免redis长期运行持久化AOF文件过大的问题:AOF重写
  • 深度学习:基于Qwen复现DeepSeek R1的推理能力
  • 基于mediapipe深度学习的手势数字识别系统python源码
  • 力扣 乘积最大子数组
  • 【动态路由】系统Web URL资源整合系列(后端技术实现)【apisix实现】
  • MySQL8.x版本的新的功能特性总结