您的位置:首页 > 数码常识数码常识
c语言序列化(c++序列化库)
2025-05-12人已围观
c语言序列化(c++序列化库)
《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个开源的C++序列化库——FdogSerialize。
c++序列化库
FStruct是一个用于C++序列化的开源库,采用非入侵方式,无需在原有结构体上进行修改,目前支持基础类型,基础类型数组,结构体,以及vector,list,map等数据类型的序列化,支持JSON和XML两种数据格式,支持别名,支持忽略字段,最少三行代码即可完成转换。
功能特性
第一阶段
支持由基础类型和Json互转支持由基础类型组成的数组和json互转支持由基础类型组合成结构体类型和Json互转支持由结构体包含结构体的类型和Json互转支持vector类型和json互转支持list类型和json互转支持map类型和json互转支持set类型和json互转
第二阶段
支持STL和自定义类型多层嵌套对第一阶段所使用的接口进行优化,将多个接口整合为一个,方便调用
第三阶段
支持对json字符串进行格式正确判断(开发中)支持获取某个字段是否存在(开发中)支持获取某个字段的值,而无须先进行序列化(开发中)
第四阶段
支持必选字段和可选字段,当必选字段无值时,进行报错(定义为指针类型即为可选字段)(开发中)支持XML数据格式的转换(开发中)
杂项支持
支持别名支持字段忽略支持忽略大小写支持字段为空,则不进行序列化(开发中)支持模糊转换(开发中)类型支持
基于C++的基础类型,FdogSerialize支持十六种类型,只要你的结构体中最基本类型在这十六种范围之内,便可完成转换。
序号基础类型说明序号基础类型说明1bool布尔类型9unsigned int无符号整型2char无符号字符型10long长整型3unsigned char无符号字符型11unsigned long无符号长整型4**char ***字符指针(字符串类型)12long long超长整型5short短整型13unsigned long long无符号超长整型6unsigned short无符号短整型14float单精度浮点类型7int整型15double双进度浮点类型8unsigned int无符号整型16long double长双进度浮点类型
最基本类型说明:
虽然school这个结构体包含了一种最基础类型和一种自定义类型,但追寻本质,自定义类型的底层都属于最基本类型。因此school这个结构体完全可以被正常解析,事实上是任意类型都可以解析。
示例说明
序列化和反序列化各提供三个函数:
序列化调用函数说明FSerialize(string & json_, T & object_, string name="")基础类型及结构体类型调用FSerializeA(string & json_, T & object_, string name="")数组,vector,list调用FSerializeS(string & json_, T & object_, string name="")set,map类型调用反序列化调用函数说明FSerialize( T & object_, string & json_, string name="")基础类型及结构体类型调用FSerializeA( T & object_, string & json_, string name="")数组,vector,list类型调用FSerializeS( T & object_, string & json_, string name="")set,map类型调用
1 基础类型序列化
2 基础类型数组序列化
3 基础类型组成的结构体序列化
4 vector类型的序列化
5 list类型的序列化
6 map类型的序列化
7 必要说明
杂项支持杂项函数支持说明setAliasName(string Type, string memberName, string AliasName)使用别名setIgnoreField(string Type, string memberName)忽略字段setIgnoreLU(string Type, string memberName)忽略大小写setFuzzy(string Type)模糊转换
1 支持别名
2 支持字段忽略
3 支持忽略大小写
当将json转为对象时,如json中的键值与对象中的成员名存在大小写不同,可以设定忽略大小写。
4 支持模糊转换
若json和对象中的键值不相同,开启后将根据模糊等级进行匹配。
—END—
开源协议:Apache2.0
开源地址:https://github.com/HuaGouFdog/FdogSerialize
上面就是小居数码小编今天给大家介绍的关于(c++序列化库)的全部内容,希望可以帮助到你,想了解更多关于数码知识的问题,欢迎关注我们,并收藏,转发,分享。
94%的朋友还想知道的:
c语言里面void和main(main函数前为什么有void)
热门的应用程序开发编程语言盘点(应用程序开发编程语言有哪些)
会c语言学java难吗(c语言与java难度)
哪种编程语言最赚钱(世界上最难的5种编程语言)
153007
《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个开源的C++序列化库——FdogSerialize。
c++序列化库
FStruct是一个用于C++序列化的开源库,采用非入侵方式,无需在原有结构体上进行修改,目前支持基础类型,基础类型数组,结构体,以及vector,list,map等数据类型的序列化,支持JSON和XML两种数据格式,支持别名,支持忽略字段,最少三行代码即可完成转换。
功能特性
第一阶段
支持由基础类型和Json互转支持由基础类型组成的数组和json互转支持由基础类型组合成结构体类型和Json互转支持由结构体包含结构体的类型和Json互转支持vector类型和json互转支持list类型和json互转支持map类型和json互转支持set类型和json互转
第二阶段
支持STL和自定义类型多层嵌套对第一阶段所使用的接口进行优化,将多个接口整合为一个,方便调用
第三阶段
支持对json字符串进行格式正确判断(开发中)支持获取某个字段是否存在(开发中)支持获取某个字段的值,而无须先进行序列化(开发中)
第四阶段
支持必选字段和可选字段,当必选字段无值时,进行报错(定义为指针类型即为可选字段)(开发中)支持XML数据格式的转换(开发中)
杂项支持
支持别名支持字段忽略支持忽略大小写支持字段为空,则不进行序列化(开发中)支持模糊转换(开发中)类型支持
基于C++的基础类型,FdogSerialize支持十六种类型,只要你的结构体中最基本类型在这十六种范围之内,便可完成转换。
序号基础类型说明序号基础类型说明1bool布尔类型9unsigned int无符号整型2char无符号字符型10long长整型3unsigned char无符号字符型11unsigned long无符号长整型4**char ***字符指针(字符串类型)12long long超长整型5short短整型13unsigned long long无符号超长整型6unsigned short无符号短整型14float单精度浮点类型7int整型15double双进度浮点类型8unsigned int无符号整型16long double长双进度浮点类型
最基本类型说明:
虽然school这个结构体包含了一种最基础类型和一种自定义类型,但追寻本质,自定义类型的底层都属于最基本类型。因此school这个结构体完全可以被正常解析,事实上是任意类型都可以解析。
示例说明
序列化和反序列化各提供三个函数:
序列化调用函数说明FSerialize(string & json_, T & object_, string name="")基础类型及结构体类型调用FSerializeA(string & json_, T & object_, string name="")数组,vector,list调用FSerializeS(string & json_, T & object_, string name="")set,map类型调用反序列化调用函数说明FSerialize( T & object_, string & json_, string name="")基础类型及结构体类型调用FSerializeA( T & object_, string & json_, string name="")数组,vector,list类型调用FSerializeS( T & object_, string & json_, string name="")set,map类型调用
1 基础类型序列化
2 基础类型数组序列化
3 基础类型组成的结构体序列化
4 vector类型的序列化
5 list类型的序列化
6 map类型的序列化
7 必要说明
杂项支持杂项函数支持说明setAliasName(string Type, string memberName, string AliasName)使用别名setIgnoreField(string Type, string memberName)忽略字段setIgnoreLU(string Type, string memberName)忽略大小写setFuzzy(string Type)模糊转换
1 支持别名
2 支持字段忽略
3 支持忽略大小写
当将json转为对象时,如json中的键值与对象中的成员名存在大小写不同,可以设定忽略大小写。
4 支持模糊转换
若json和对象中的键值不相同,开启后将根据模糊等级进行匹配。
—END—
开源协议:Apache2.0
开源地址:https://github.com/HuaGouFdog/FdogSerialize
上面就是小居数码小编今天给大家介绍的关于(c++序列化库)的全部内容,希望可以帮助到你,想了解更多关于数码知识的问题,欢迎关注我们,并收藏,转发,分享。
94%的朋友还想知道的:
c语言里面void和main(main函数前为什么有void)
热门的应用程序开发编程语言盘点(应用程序开发编程语言有哪些)
会c语言学java难吗(c语言与java难度)
哪种编程语言最赚钱(世界上最难的5种编程语言)
153007
很赞哦! ()