[发明专利]序列化方法和装置、以及反序列化方法和装置有效
申请号: | 201410438753.0 | 申请日: | 2014-08-29 |
公开(公告)号: | CN105446722B | 公开(公告)日: | 2019-04-02 |
发明(设计)人: | 梁捷;郭照敏;饶荣庆 | 申请(专利权)人: | 优视科技有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30 |
代理公司: | 北京超凡志成知识产权代理事务所(普通合伙) 11371 | 代理人: | 吴开磊 |
地址: | 100083 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 序列 方法 装置 以及 | ||
1.一种序列化方法,其特征在于,包括:
遍历数据对象的每个类;
针对当前遍历到的类,如果遍历到继承类或者不具有继承类的成员类,输出与遍历到的类对应的开始状态标志以及与遍历到的类对应的字节序列;
针对当前遍历到的类,如果遍历到具有继承类的成员类,且该具有继承类的成员类只有一层继承类,则输出该继承类对应的字节序列,不输出该继承的开始状态标志;针对当前遍历到的类,如果遍历到具有继承类的成员类,且该具有继承类的成员类有多层继承类,则输出与遍历到的类对应的开始状态标志,根据具有继承类的成员类的继承层次逐层遍历具有继承类的成员类的继承类后,遍历具有继承类的成员类,输出与遍历到的类对应的开始状态标志和字节序列。
2.如权利要求1所述的序列化方法,其特征在于,所述与遍历到的类对应的字节序列,包括:遍历到的类的唯一类型序列、遍历到的类中成员类的标识、基础类状态标志、遍历到的类中基础类型对应的字节序列以及与遍历到的类对应的结束状态标志;遍历到的类包括继承类、不具有继承类的成员类、具有继承类的成员类以及具有继承类的成员类的继承类;其中,遍历到的类的唯一类型序列根据遍历到的类的继承层数和类名生成。
3.如权利要求2所述的序列化方法,其特征在于,所述遍历到的类中成员类的标识根据遍历到的类中的成员类生成,所述开始状态标志、基础类状态标识和结束状态标志预先设定,所述类中基础类型对应的字节序列依次包括:预先设定的基础类型的唯一类型序列、基础类型成员的标识以及基础类型成员的值序列。
4.如权利要求2所述的序列化方法,其特征在于,根据遍历到的类的继承层数和类名生成遍历到的类的唯一类型序列,包括:
将遍历到的类的继承层数转换为8bit的字节,其中,根类的继承层数为1,每多一层继承关系所述继承层数加1;
将遍历到的类的类名使用哈希算法转换为24bit的字节;
将继承层数转换而成的字节左移24bit,加上类名转换而成的24bit字节,得到遍历到的类的唯一类型序列。
5.如权利要求2所述的序列化方法,其特征在于,所述根据遍历到的类中的成员类生成遍历到的类中成员类的标识,为根据成员类在类中的次序将成员类定义为长度为16bit的字节;基础类型成员的标识的生成方法与遍历到的类中成员类的标识的生成方法相同。
6.一种反序列化方法,其特征在于,包括:
依次读取字节流;
读取到与类对应的开始状态标志时,依次读取字节流中所述类开始状态标志之后类的唯一类型序列、类中各个成员类的标识,将类的唯一类型序列转换为类的类名和继承层数,将类中成员类的标识转换为类的成员类;
读取到类中基础类状态标志时,依次读取字节流中所述类中基础类状态标志之后类中基础类型的唯一类型序列、所述基础类型成员的标识、所述基础类型的成员的值序列,将类中基础类型的唯一类型序列转换为基础类型,将基础类型成员的标识转换为基础类型的成员,以及将基础类型成员的值序列转换为基础类型的成员的值;
读取到与类对应的结束状态标志时,结束当次类的构建。
7.如权利要求6所述的反序列化方法,其特征在于,所述将字节流中类的唯一类型序列转换为类的类名和继承层数,包括:
将所述唯一类型序列的后24bit位转换为类的类名;
将唯一类型序列右移24bit后和十六进制0xff求逻辑与,得到继承层数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于优视科技有限公司,未经优视科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410438753.0/1.html,转载请声明来源钻瓜专利网。