[发明专利]序列化与反序列化方法、装置及设备有效
申请号: | 201710619098.2 | 申请日: | 2017-07-26 |
公开(公告)号: | CN107451237B | 公开(公告)日: | 2020-09-15 |
发明(设计)人: | 王文通 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F16/25 | 分类号: | G06F16/25;G06F16/2455 |
代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 王茹 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 序列 方法 装置 设备 | ||
本说明书提供一种序列化与反序列化方法、装置及设备,该方法包括:预先为父类配置元数据标签,该元数据标签用于指示为父类预留的属性序号的数量。序列化时,先获得待序列化的数据对象对应的子类,基于父类的元数据标签所指示的数量以及数据对象的属性在子类中的属性排位,确定属性的属性序号;并且,读取数据对象中属性对应的属性值;然后,将所述属性的属性序号和属性值进行序列化,获得序列化数据。
技术领域
本说明书涉及计算机技术领域,尤其涉及序列化与反序列化方法、装置及设备。
背景技术
序列化(serialization)和反序列化(deserialization)是计算机领域常用的技术。序列化用于将对象的数据信息转换成可保持格式或可传输格式的序列化数据,例如序列化数据可以是二进制数据流,从而能够对序列化数据进行保存或者传输等操作。反序列化为序列化的逆过程,用于将序列化数据转换为对象的数据信息。针对存在继承关系的子类的对象进行序列化时,如果在序列化端和反序列化端确定解析协议所需要用到的子类后,发生父类扩展属性的情况,例如父类后续增加属性,则会导致子类属性编码序号改变。此时序列化端和反序列化端必须同时升级两端的类,否则导致反序列化异常。
鉴于此,需要提供一种支持父类扩展属性的方案。
发明内容
为克服相关技术中存在的问题,本说明书提供了序列化与反序列化方法、装置及设备。
一种序列化方法,预先对父类配置元数据标签,所述元数据标签用于指示为所述父类预留的属性序号的数量,所述方法包括:
获得待序列化的数据对象对应的子类,所述子类继承于所述父类;
基于所述父类的元数据标签所指示的数量以及所述数据对象的属性在所述子类中的属性排位,确定所述属性的属性序号;
读取所述数据对象中所述属性对应的属性值;
将所述属性的属性序号和属性值进行序列化,获得序列化数据。
可选的,所述基于所述父类的元数据标签所指示的数量以及所述数据对象的属性在所述子类中的属性排位,确定所述属性的属性序号,包括:
将基于所述数据对象的属性在所述子类中的属性排位获得的序号,与所述父类的元数据标签所指示的数量相加,获得所述属性的属性序号。
可选的,所述将所述属性的属性序号和属性值进行序列化,获得序列化数据,包括:
将所述属性的属性序号编码作为键值对的键信息;
将所述属性的属性值编码作为键值对的值信息;
按所述属性序号的顺序将由键信息和值信息构成的键值对写入所述数据对象的结果数据流,所述结果数据流作为所述数据对象的序列化数据。
可选的,所述方法还包括:
将所述属性的属性序号和属性值进行序列化时,还将所述属性的属性类型进行序列化。
可选的,所述方法还包括:
将所述属性的属性序号和属性值进行序列化时,还将所述属性值的长度值进行序列化。
一种反序列化方法,预先对父类配置元数据标签,所述元数据标签用于指示为所述父类预留的属性序号的数量,所述方法包括:
获取序列化数据;
获得所述序列化数据对应的子类,所述子类继承于所述父类;
基于所述父类的元数据标签所指示的数量以及所述子类中属性的属性排位,确定所述属性的属性序号,获得所述属性与所述属性序号的映射关系;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710619098.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用于制茶的鲜叶筛分机
- 下一篇:麻类物料空气分离机