# JsonSerialization **Repository Path**: AriesSun/JsonSerialization ## Basic Information - **Project Name**: JsonSerialization - **Description**: Json序列化和反序列化工具,不需要手写KEY/VALUE,完成对类或结构体的序列化和反序列化。 - **Primary Language**: C++ - **License**: LGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-03-24 - **Last Updated**: 2024-07-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JsonSerialization #### 介绍 Json序列化和反序列化工具,不需要手写KEY/VALUE,完成对类或结构体的序列化和反序列化。 #### 目前已经支持如下类型的序列化: - short - unsigned short - int - unsigned int - int64_t - uint64_t - bool - float - double - std::string - std::array - std::vector - std::list - std::set - std::unordered_set - std::map - std::unordered_map - std::multimap - std::pair - std::tuple - std::bitset - std::optional - T* - std::shared_ptr - glm::vec - glm::vec2 - glm::vec3 - glm::mat - glm::mat2 - glm::mat3 - glm::mat4 - glm::matmxn - glm::tquat ##### 说明 - T是一种模版类型 - T*是模版类型指针 - map的KEY也是模版类型,但是KEY类型需要是可比较大小类型,如果使用unordered_map,KEY如果是自定义的类型,还需要实现hash。map系列容器,建议使用常用的基本类型,不建议使用指针作为KEY. - 由于实现std::tuple的序列化和反序列化,使用更加牛逼的模版元编程知识,因此,目前std::tuple的模版参数类型仅支持基础类型,可以是STL容器,但是容器的模版参数必须是,基础类型。换句话说就是,std::tuple的模板参数中不支持自定义的结构体和类。 #### 使用教程 将ext文件夹,集成到您的工程中即可,如果不适用glm,不加SUPPORT_GLM_SERIALIZATION这个宏就可以了,同时ext文件夹中的glm文件夹也不用拷贝 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request