[发明专利]一种对象序列化方法、对象反序列化方法、装置及系统有效
申请号: | 200910190251.X | 申请日: | 2009-09-24 |
公开(公告)号: | CN101661391A | 公开(公告)日: | 2010-03-03 |
发明(设计)人: | 曹澜 | 申请(专利权)人: | 金蝶软件(中国)有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06Q10/00 |
代理公司: | 深圳中一专利商标事务所 | 代理人: | 张全文 |
地址: | 518000广东省深圳市南*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 对象 序列 方法 装置 系统 | ||
技术领域
本发明属于计算机领域,尤其涉及一种对象序列化方法、对象反序列化方法、对象序列化装置、对象反序列化装置及ERP系统。
背景技术
现有的一种对象序列化方法是将对象整体序列化,然后保存到存储介质中或输出,一个对象序列化的结果对应一个序列化标识serialVersionUID,通过该序列化标识唯一标识各个对象的序列化结果。在需要的时候,将存储或接收到的序列化后的数据反序列化为对象。例如Person类的定义如下:
如果将Person类的一个对象person0序列化后,增加、减少或修改了Person类的属性,或者改变了Address类的属性,都将引起对象person0的序列化标识serialVersionUID的变化,这样,再将原来序列化后的文件或数据进行反序列化时,会产生错误、序列化失败。
为了避免增加、减少或修改了类的属性后,由于该类对应的对象的序列化标识产生变化而造成反序列化失败,在定义Person类的对象person0时,同时显示的定义了对象person0的serialVersionUID值。这样,增加、减少或修改Person类的属性就可以避免对象person0的serialVersionUID值的改变,不会对反序列化操作带来错误。但是,要对所有涉及到的对象都显示定义对象的 serialVersionUID值,才能完全避免由于对类的属性进行增加、减少或修改而带来的反序列化失败的问题,实现复杂、处理效率低,且对于引用了其他的库文件的类,则无法显式定义、修改该类对象的serialVersionUID值。
发明内容
本发明实施例的目旨在解决现有技术存在的问题,提供一种对象序列化方法,能够完全避免由于对对象所属类的属性进行增加、减少或修改而带来的对象反序列化失败的问题,实现简单、处理效率高。
本发明实施例是这样实现的,一种对象序列化方法,所述方法包括下述步骤:
依次获取对象的各属性名称及属性值;
根据获取到的属性值所属的类型序列化获取到的属性值或将获取到的属性值分解为基本类型后再序列化;
根据连接方式信息连接所有序列化后的属性值及各序列化后的属性值对应的包括分解信息的属性名称;
所述根据获取到的属性值所属的类型序列化获取到的属性值或将获取到的属性值分解为基本类型后再序列化的步骤具体包括:
如果获取到的属性值为基本类型,则序列化该属性值,将序列化后的属性值和对应的包括分解信息的属性名称组成键值对;
如果获取到的属性值为非基本类型,则循环分解该属性值的各属性,得到为基本类型的子属性值及对应的包括分解信息的属性名称,再序列化得到的子属性值,将序列化后的属性值和对应的包括分解信息的属性名称组成键值对。
本发明实施例的另一目的在于提供一种对象反序列化方法,所述方法包括下述步骤:
根据连接方式信息拆分接收到的序列化数据,得到序列化后的属性值及对应的包括分解信息的属性名称;
根据对象属性信息生成各属性值均为空的反序列化对象;
根据对象属性信息和得到的序列化后的属性值及对应的包括分解信息的属性名称,给生成的反序列化对象的相应属性值赋值;
得到的所述序列化后的属性值及对应的包括分解信息的属性名称组成键值对;
所述根据对象属性信息和得到的序列化后的属性值及对应的包括分解信息的属性名称,给生成的反序列化对象的相应属性值赋值的步骤具体包括:
根据对象属性信息依次获取生成的反序列化对象包括的各属性名称及对应的属性值类型;
如果获取到的属性值类型为基本类型,则根据获取到的属性名称在拆分得到的键值对中查找到对应的序列化后的属性值,将查找到的序列化后的属性值反序列化后赋予反序列化对象的相应属性值;
如果获取到的属性值类型为非基本类型,则根据对象属性信息、获取到的属性名称和拆分得到的键值对生成属性值对象,将生成的属性值对象赋予反序列化对象的相应属性值。
本发明实施例的另一目的在于提供一种对象序列化装置,所述装置包括:
对象信息获取单元,用于依次获取对象的各属性名称及属性值;
序列化单元,用于根据所述对象信息获取单元获取到的属性值所属的类型序列化获取到的属性值或将获取到的属性值分解为基本类型后再序列化;以及
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于金蝶软件(中国)有限公司,未经金蝶软件(中国)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910190251.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种软件监控方法及软件监控装置
- 下一篇:一种化工-电力多联产的方法和设备