一种对象序列化方法、装置、机器可读介质以及系统制造方法及图纸

技术编号:24410167 阅读:21 留言:0更新日期:2020-06-06 08:50
本发明专利技术涉及计算机技术领域,特别地公开了一种对象序列化方法、装置、机器可读介质以及系统。该对象序列化方法,包括:获取对象的至少一个属性,属性包括属性名、属性类型和属性值;根据对象创建包装对象,包装对象的每个属性中的属性名和属性值与对象的相应属性的属性名和属性值相同,而对于包装对象的每个属性的属性类型:在对象的相应属性的属性类型为预设的序列化类型的情况下,包装对象的属性类型与对象的属性类型相同;在对象的相应属性的属性类型不是预设的序列化类型的情况下,包装对象的属性类型为与对象的属性类型对应的预设序列化类型;序列化包装对象。序列化后的对象占用存储空间的大小,提高网络传输速度,提高了应用的整体性能。

An object serialization method, device, machine-readable medium and system

【技术实现步骤摘要】
一种对象序列化方法、装置、机器可读介质以及系统
本专利技术涉及计算机
,特别地公开了一种对象序列化方法、装置、机器可读介质以及系统。
技术介绍
序列化(Serialization)是一种将对象的状态信息转换为可以存储或传输的形式的过程。在该过程中,首先将序列化的结果写入缓冲区,再将缓冲区中的内容输出或写入磁盘。基于目前的应用场景,序列化的转换形式主要包括Json对象简谱、Xml可扩展标记语言、Binary二进制串等。在云计算及高性能计算领域,序列化的性能通常会对系统的计算性能造成很大的影响。现有的对象序列化技术,大多数情况为了可读性都会选择Jackson或Fastjson等框架将对象序列化成Json格式,对象序列化后的字节大小较大,序列化/反序列的性能也不高。Protostuff等框架序列化/反序列性能较好,能有效降低对CPU资源的消耗。但是对复杂类创建的对象(类有继承、属性中有其他类嵌套、属性有日期、包装类等特殊类型)序列化又会产生膨胀问题,序列化后的字节大小比序列化成Json格式更大。
技术实现思路
本申请实施例提供了一种对象序列化方法,包括:获取对象的至少一个属性,属性包括属性名、属性类型和属性值;根据对象创建包装对象,包装对象的每个属性中的属性名和属性值与对象的相应属性的属性名和属性值相同,而对于包装对象的每个属性的属性类型:在对象的相应属性的属性类型为预设的序列化类型的情况下,包装对象的属性类型与对象的属性类型相同;在对象的相应属性的属性类型不是预设的序列化类型的情况下,包装对象的属性类型为与对象的属性类型对应的预设序列化类型;序列化包装对象。可选地,根据对象创建包装对象,还包括:在对象包含继承关系的情况下,于创建的包装对象中去除继承关系。可选地,还包括:序列化类型包括执行序列化方法的编程语言的内置类型。可选地,序列化类型还包括:字符串类型,日期类型,集合类型和/或自定义类型中的至少一种。可选地,还包括:在对象的属性类型是日期类型的情况下,包装对象中对应的序列化类型为字符串类型。可选地,还包括:将包装类型的属性类型转换成包装类型对应的基本类型。本申请还提供了一种对象反序列化方法,包括:获取已序列化的对象的数据,基于数据获取对象的属性,属性包括属性名,序列化类型,属性值;从预先配置的序列化类型与属性类型的对应关系中,获取与对象的序列化类型对应的属性类型;根据序列化类型对应的属性类型,属性名建立对象,基于属性值对对象赋值。可选地,还包括:在对象的数据包含继承关系的情况下,于对象中添加继承关系。本申请还提供了一种对象序列化装置,包括:获取模块,获取模块用于获取对象的至少一个属性,属性包括属性名、属性类型和属性值;创建模块,创建模块用于根据对象创建包装对象,包装对象的每个属性中的属性名和属性值与对象的相应属性的属性名和属性值相同,而对于包装对象的每个属性的属性类型:在对象的相应属性的属性类型为预设的序列化类型的情况下,包装对象的属性类型与对象的属性类型相同;在对象的相应属性的属性类型不是预设的序列化类型的情况下,包装对象的属性类型为与对象的属性类型对应的预设序列化类型;序列化模块,序列化模块用于序列化包装对象。可选地,创建模块根据对象创建包装对象,还包括:创建模块用于在对象包含继承关系的情况下,于创建的包装对象中去除继承关系。可选地,还包括:创建模块用于配置序列化类型,包括执行序列化方法的编程语言的内置类型。可选地,创建模块还用于配置序列化类型,包括:字符串类型,日期类型,集合类型和/或自定义类型中的至少一种。可选地,还包括:创建模块用于在对象的属性类型是日期类型的情况下,包装对象中对应的序列化类型为字符串类型。可选地,还包括:创建模块用于将包装类型的属性类型转换成包装类型对应的基本类型。本申请还提供了一种对象反序列化装置,包括:获取模块,获取模块用于获取已序列化的对象的数据,基于数据获取对象的属性,属性包括属性名,序列化类型,属性值;转换模块,转换模块用于从预先配置的序列化类型与属性类型的对应关系中,获取与对象的序列化类型对应的属性类型;反序列化模块,反序列化模块用于根据序列化类型对应的属性类型,属性名建立对象,基于属性值对对象赋值。可选地,还包括:反序列化模块用于在对象的数据包含继承关系的情况下,于对象中添加继承关系。本申请还提供了一种机器可读介质,机器可读介质上存储有指令,该指令在机器上执行时使机器执行上述的对象序列化方法。本申请还提供了一种系统,包括:存储器,用于存储由系统的一个或多个处理器执行的指令,以及处理器,是系统的处理器之一,用于执行上述的对象序列化方法。本申请的方法压缩了序列化后对象占用存储空间的大小,提高网络传输速度,提高了应用的整体性能。附图说明图1根据本申请的一些实施例,示出了一种对象序列化方法的流程示意图。图2根据本申请的一些实施例,示出了一种对象反序列化的流程示意图。图3根据本申请的一些实施例,示出了一种对象序列化装置的结构示意图。图4根据本申请的一些实施例,示出了一种对象反序列化装置的结构示意图。图5根据本申请的一些实施例,示出了一种系统的框图。图6根据本申请一些实施例,示出了一种片上系统(SoC)的框图。具体实施例可以理解,如本文所使用的,术语“模块””可以指代或者包括专用集成电路(ASIC)、电子电路、执行一个或多个软件或固件程序的处理器(共享、专用、或群组)和/或存储器、组合逻辑电路、和/或提供所描述的功能的其他适当硬件组件,或者可以作为这些硬件组件的一部分。可以理解,在本申请各实施例中,处理器可以是微处理器、数字信号处理器、微控制器等,和/或其任何组合。根据另一个方面,所述处理器可以是单核处理器,多核处理器等,和/或其任何组合。下面将结合附图对本申请的实施例作进一步地详细描述。根据本申请的一些实施例公开了以及一种对象序列化方法、对象反序列化方法、对象序列化装置、对象反序列化装置、机器可读介质以及系统。通常,在序列化过程中,任意自定义对象或者非自定义的对象包括至少一个属性,属性的名称即属性名称,属性对应的值即属性值,属性的类型即属性类型可以为整型,字符型,浮点型,布尔型等程序设计语言支持的基本类型,还可以时非基本类型,常见的非基本类型可以为字符串型,日期型等。如果属性类型为非基本类型,则可对该属性进行转换,例如,将日期类型转换为字符串类型,虽然字符串类型也是非基本类型,但是系统对于字符串类型的处理速度要快于日期类型。本申请的实施例可以识别对象数据中所有待序列化对象的属性类型,并针对对象中本文档来自技高网...

【技术保护点】
1.一种对象序列化方法,其特征在于,包括:/n获取对象的至少一个属性,所述属性包括属性名、属性类型和属性值;/n根据所述对象创建包装对象,所述包装对象的每个属性中的属性名和属性值与所述对象的相应属性的属性名和属性值相同,而对于所述包装对象的每个属性的属性类型:/n在所述对象的相应属性的属性类型为预设的序列化类型的情况下,所述包装对象的属性类型与所述对象的属性类型相同;/n在所述对象的相应属性的属性类型不是预设的序列化类型的情况下,所述包装对象的属性类型为与所述对象的属性类型对应的预设序列化类型;/n序列化所述包装对象。/n

【技术特征摘要】
1.一种对象序列化方法,其特征在于,包括:
获取对象的至少一个属性,所述属性包括属性名、属性类型和属性值;
根据所述对象创建包装对象,所述包装对象的每个属性中的属性名和属性值与所述对象的相应属性的属性名和属性值相同,而对于所述包装对象的每个属性的属性类型:
在所述对象的相应属性的属性类型为预设的序列化类型的情况下,所述包装对象的属性类型与所述对象的属性类型相同;
在所述对象的相应属性的属性类型不是预设的序列化类型的情况下,所述包装对象的属性类型为与所述对象的属性类型对应的预设序列化类型;
序列化所述包装对象。


2.根据权利要求1所述的对象序列化方法,其特征在于,根据所述对象创建包装对象,还包括:
在所述对象包含继承关系的情况下,于创建的所述包装对象中去除所述继承关系。


3.根据权利要求1所述的对象序列化方法,其特征在于,还包括:
所述序列化类型包括执行所述序列化方法的编程语言的内置类型。


4.根据权利要求1所述的对象序列化方法,其特征在于,
所述序列化类型包括:字符串类型,日期类型,集合类型和/或自定义类型中的至少一种。


5.根据权利要求1所述的对象序列化方法,其特征在于,还包括:
在所述对象的属性类型是日期类型的情况下,所述包装对象中对应的序列化类型为字符串类型。


6.根据权利要求1所述的对象序列化方法,其特征在于,还包括:
将包装类型的属性类型转换成所述包装类型对应的基本类型。

【专利技术属性】
技术研发人员:曹玮吴永军陈萌辉
申请(专利权)人:上海依图网络科技有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1