[发明专利]序列化装置和序列化方法有效

专利信息
申请号: 201210480564.0 申请日: 2012-11-22
公开(公告)号: CN102981884A 公开(公告)日: 2013-03-20
发明(设计)人: 蒋生锋 申请(专利权)人: 用友软件股份有限公司
主分类号: G06F9/45 分类号: G06F9/45
代理公司: 北京友联知识产权代理事务所(普通合伙) 11343 代理人: 尚志峰;汪海屏
地址: 100094 北京*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 序列 化装 方法
【说明书】:

技术领域

发明涉及序列化和反序列化技术领域,具体而言,涉及一种序列化装置和一种序列化方法。

背景技术

每种编程语言都提供了各自的序列化和反序列化的方法,通过这些编程语言提供的方法进行序列化后,数据占用的空间比较大,而且在序列化后只能使用对应语言的反序列化方法进行反序列化。

目前的序列化装置主要分为两类,一种是二进制序列化器,一种是XML(可扩展标记语言)序列化器。

二进制序列化器的优点是序列化的效率高,但是二进制数据可读性差,并且必须知道序列化数据的格式才能进行反序列化,而且由于编程语言的不同,对象序列化的格式也会不同,所以二进制序列化器通用性很差。

XML序列化器的优点是可以在各编程语言中通用,可读性强,但是序列化后的数据占用的空间比较大,而且由于XML都是以字符串方式存储的,所以序列化和反序列化时需要将对象转换为字符串,转换时降低序列化和反序列化对象的效率。

因此,需要一种新的序列化技术,能够提高序列化的通用性,提高序列化的效率,减少序列化后数据占用的存储空间。

发明内容

本发明正是基于上述问题,提出了一种序列化技术,能够提高序列化的通用性,提高序列化的效率,减少序列化后数据占用的存储空间。

有鉴于此,本发明提出了一种序列化装置,包括:第一判断单元,用于在所述序列化装置对源对象进行序列化时,判断所述源对象的类型是否为预设简单类型,若不是,则判定所述源对象的类型为预设复杂类型;第一转换单元,用于在所述源对象的类型为预设简单类型的情况下,将所述源对象的状态信息转换为待存储数据;第一获取单元,用于在所述源对象的类型为预设复杂类型的情况下,获取所述源对象中属性值不为空的属性,并根据所述属性生成相应的描述数据,将所述描述数据缓存至临时字节流中,以及根据所述属性对应的类型对所述属性的值进行序列化,并将序列化的结果数据缓存至所述临时字节流中;计算单元,用于计算所述描述数据的字节流长度和所述结果数据的字节流长度之和,以作为所述源对象的字节流长度;存储单元,用于将所述待存储数据保存至目标字节流中,并将所述源对象的字节流长度序列化至所述目标字节流中,以及将所述描述数据和所述结果数据保存至所述目标字节流中。

在该技术方案中,用户可以根据预先设置的预设简单类型和预设复杂类型,判断待序列化的源对象的类型,可以设置预设简单类型和预设复杂类型为个编程语言通用的基本数据类型,并且可以将序列化后的数据以字节流的方式进行存储,而字节是计算存储和传输数据的基本单位,各种编程语言都能识别字节,从而解决二进制序列化器通用性差的问题。

在上述技术方案中,优选地,所述第一判断单元还用于判断所述源对象的类型是否为空数据类型,若是,则将所述空数据类型对应的标识保存至所述目标字节流中,若不是,则判断所述源对象的类型是否为预设简单类型。

在该技术方案中,对于数据为空的数据对象可以不进行序列化,从而可以有效地减少对象描述所占用的空间。

在上述技术方案中,优选地,所述存储单元还用于将所述源对象的类型对应的标识保存至所述目标字节流中;所述第一获取单元还用于获取所述目标字节流中的所述标识;以及所述序列化装置还包括:第二判断单元,用于根据所述标识判断待反序列化的数据的类型是否为预设简单类型;第二获取单元,用于在所述第二判断单元的判断结果为是的情况下,获取所述字节流中除了所述标识对应的字节的其他字节,并将所述其他字节转换为相应的对象;第三判断单元,用于判断目标对象和所述相应的对象的类型是否相同;第二转换单元,用于在所述第三判断单元的判断结果为否的情况下,将所述相应的对象的类型转换为所述目标对象的类型;第一数值返回单元,用于将所述相应的对象赋值给所述目标对象,或将转换后的所述相应的对象赋值给所述目标对象;第三获取单元,用于在所述第二判断单元的判断结果为否的情况下,从所述字节流中获取所述描述数据,并获取所述目标对象中的目标属性的信息,查询与所述目标属性的名称相同的所述描述数据所描述的属性,根据所述描述数据反序列化出对象;第四判断单元,用于判断反序列化出来的对象的类型和所述目标对象的类型是否相同;第三转换单元,用于在所述第四判断单元的判断结果为否的情况下,将所述反序列化出来的对象的类型转换为所述目标对象的类型;第二数值返回单元,用于将所述反序列化出来的对象赋值给所述目标对象的相应的属性,或将转换后的对象赋值给所述目标对象的相应的属性。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于用友软件股份有限公司,未经用友软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201210480564.0/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top