一种对象序列化方法、对象反序列化方法、装置及系统制造方法及图纸

技术编号:4157603 阅读:276 留言:0更新日期:2012-04-11 18:40
本发明专利技术适用于计算机领域,提供了一种对象序列化方法、对象反序列化方法、装置及系统,所述对象序列化方法包括下述步骤:依次获取对象的各属性名称及属性值;根据获取到的属性值所属的类型序列化获取到的属性值或将获取到的属性值分解为基本类型后再序列化;根据连接方式信息连接所有序列化后的属性值及各序列化后的属性值对应的包括分解信息的属性名称。在本发明专利技术实施例中,通过依次获取对象的各属性名称及属性值,并根据获取到的属性值所属的类型序列化获取到的属性值或将获取到的属性值分解为基本类型后再序列化,能完全避免由于对对象所属类的属性进行增加、减少或修改而带来的对象反序列化失败的问题,实现简单、处理效率高。

Object serialization method, object anti serialization method, device and system

The invention is applicable to the computer field, provides a method for object object serialization, deserialization method, device and system, the object serialization method comprises the following steps: in order to obtain the object name attribute and attribute value; according to the property to obtain access to the value of the property belongs to the type of the value or the property to obtain serialization the value decomposition into basic types after serialization; according to the connection information of all connection attribute value and attribute the serialized serialized value after the corresponding attribute information including name decomposition. In the embodiment of the invention, in order to get the object through the attribute name and attribute values, and to obtain access to the attribute according to the attribute value belongs to the type of serialization values or access to the attribute value decomposition into basic types after serialization, completely avoid the attributes of a class can object for the increase reduce or modify the object deserialization failure, simple realization, high processing efficiency.

【技术实现步骤摘要】

本专利技术属于计算机领域,尤其涉及一种对象序列化方法、对象反序列化方法、对象序列化装置、对象反序列化装置及ERP系统。
技术介绍
现有的一种对象序列化方法是将对象整体序列化,然后保存到存储介质中 或输出, 一个对象序列化的结果对应一个序列化标识serialVersionUID,通过该 序列化标识唯一标识各个对象的序列化结果。在需要的时候,将存储或接收到 的序列化后的数据反序列化为对象。例如Person类的定义如下 public Class Person Implements Serializable { String name; String telephone; Address address;如果将Person类的一个对象personO序列化后,增力o、减少或修改了 Person 类的属性,或者改变了 Address类的属性,都将引起对象personO的序列化标识 serialVersionUID的变化,这样,再将原来序列化后的文件或数据进行反序列化 时,会产生错误、序列化失败。为了避免增加、减少或修改了类的属性后,由于该类对应的对象的序列化 标识产生变化而造成反序列化失败,在定义Person类的对象personO时,同时 显示的定义了对象personO的serialVersionUID值。这样,增加、减少或修改 Person类的属性就可以避免对象personO的serialVersionUID值的改变,不会对 反序列化操作带来错误。但是,要对所有涉及到的对象都显示定义对象的serialVersionUID值,才能完全避免由于对类的属性进行增加、减少或修改而带 来的反序列化失败的问题,实现复杂、处理效率低,且对于引用了其他的库文 件的类,则无法显式定义、修改该类对象的serialVersionUID值。
技术实现思路
本专利技术实施例的目旨在解决现有技术存在的问题,提供一种对象序列化方 法,能够完全避免由于对对象所属类的属性进行增加、减少或修改而带来的对 象反序列化失败的问题,实现简单、处理效率高。本专利技术实施例是这样实现的, 一种对象序列化方法,所述方法包括下述步骤依次获取对象的各属性名称及属性值;根据获取到的属性值所属的类型序列化获取到的属性值或将获取到的属性 值分解为基本类型后再序列化;根据连接方式信息连接所有序列化后的属性值及各序列化后的属性值对应 的包括分解信息的属性名称。本专利技术实施例的另一目的在于提供一种对象反序列化方法,所述方法包括 下述步骤根据连接方式信息拆分接收到的序列化数据,得到序列化后的属性值及对应的包括分解信息的属性名称;根据对象属性信息生成各属性值均为空的反序列化对象;根据对象属性信息和得到的序列化后的属性值及对应的包括分解信息的属性名称,给生成的反序列化对象的相应属性值赋值。本专利技术实施例的另一目的在于提供一种对象序列化装置,所述装置包括 对象信息荻取单元,用于依次荻取对象的各属性名称及属性值; 序列化单元,用于根据所述对象信息获取单元获取到的属性值所属的类型序列化获取到的属性值或将获取到的属性值分解为基本类型后再序列化;以及连接单元,用于根据连接方式信息连接所有序列化后的属性值及各序列化 后的属性值对应的包括分解信息的属性名称。本专利技术实施例的另一目的在于提供一种包含上述对象序列化装置的ERP 系统。本专利技术实施例的另 一 目的在于提供一种对象反序列化装置,所述装置包括 序列化数据接收单元,用于根据连接方式信息拆分接收到的序列化数据,得到序列化后的属性值及对应的包括分解信息的属性名称;对象生成单元,用于根据对象属性信息生成各属性值均为空的反序列化对象;以及反序列化单元,用于根据对象属性信息和所述序列化数据接收单元得到的 序列化后的属性值及对应的包括分解信息的属性名称,给所述对象生成单元生 成的反序列化对象的相应属性值赋值。本专利技术实施例的另一目的在于提供一种包含上述对象反序列化装置的ERP 系统。在本专利技术实施例中,通过依次获取对象的各属性名称及属性值,并根据获 取到的属性值所属的类型序列化获取到的属性值或将获取到的属性值分解为基 本类型后再序列化,实现了一种对象序列化方法,不管对象所属类为自定义类、 非自定义类或引用的其他库文件的类,都能完全避免由于对对象所属类的属性 进行增加、减少或修改而带来的对象反序列化失败的问题,实现简单、处理效 率高。附图说明图1是本专利技术实施例提供的对象序列化方法的实现流程图; 图2是本专利技术实施例提供的对象反序列化方法的实现流程图; 图3是本专利技术实施例提供的对象序列化装置的结构示意图; 图4是本专利技术实施例提供的对象反序列化装置的结构示意图。具体实施例方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例4又 仅用以解释本专利技术,并不用于限定本专利技术。在本专利技术实施例中,通过依次获取对象的各属性名称及属性值,并根据获 取到的属性值所属的类型序列化获取到的属性值或将获取到的属性值分解为基 本类型后再序列化。图1示出了本专利技术实施例提供的对象序列化方法的实现流程,详述如下 在步骤S101中,依次获取对象的各属性名称及属性值; 在步骤S102中,根据获取到的属性值所属的类型序列化获取到的属性值或 将获取到的属性值分解为基本类型后再序列化;在步骤S103中,才艮据连接方式信息连接所有序列化后的属性值及各序列化 后的属性值对应的包括分解信息的属性名称。任意自定义类或非自定义类的实例即为该自定义类或非自定义类的对象, 简称对象,自定义类可以是根据实际需要定义的任意类,非自定义类可以是引 用的源代码等中已经定义好的类;对象包括至少一个属性,属性的名称即属性 名称,属性对应的值即为属性值,属性值可以为整型、字符型、浮点型、字符 串型等程序设计语言支持的基本类型,还可用为非基本类型,非基本类型即为 任意自定义类或非自定义类。如果属性值为非基本类型,则可对该属性值进行 分解,得到其子属性值及对应的包括分解信息(即分解路径信息)的属'压^T 该包括分解信息的属性名称包括分解得到的该子属性值对应的所有上级属性名 称及其属性名称。当然,如果获取到的属性值为基本类型,则其对应的属性名 称与包括分解信息的属性名称相同。 上述步骤S102具体包括如果获取到的属性值为基本类型,则序列化该属性值,将序列化后的属性值和对应的包括分解信息的属性名称组成4建值对;如果获取到的属性值为非基本类型,则循环分解该属性值的各属性,得到 为基本类型的子属性值及对应的包括分解信息的属性名称,再序列化得到的子 属性值,将序列化后的属性值和对应的包括分解信息的属性名称组成4建值对。这样,对于为非基本类型的属性值,即属性值为对象,则依次获取该属性 值的各子属性名称及子属性值,如果获取到的子属性值为基本类型,则序列化 该子属性值,并将序列化后的属性值和对应的包括分解信息的属性名称组成键 值对后,再判断下一获取到的属性值;如果获取到的子属性值为非基本类型, 则进一步循环分解该子属性值的各属性,得到为基本类型的子属性值后,序列 化该子属性值,并将序列化后的属性值和对应的包括分解信息的属性名称组成 键值对,再判断下一获取到的属性值。在将序列化本文档来自技高网
...

【技术保护点】
一种对象序列化方法,其特征在于,所述方法包括下述步骤:    依次获取对象的各属性名称及属性值;    根据获取到的属性值所属的类型序列化获取到的属性值或将获取到的属性值分解为基本类型后再序列化;    根据连接方式信息连接所有序列化后的属性值及各序列化后的属性值对应的包括分解信息的属性名称。

【技术特征摘要】
1、一种对象序列化方法,其特征在于,所述方法包括下述步骤依次获取对象的各属性名称及属性值;根据获取到的属性值所属的类型序列化获取到的属性值或将获取到的属性值分解为基本类型后再序列化;根据连接方式信息连接所有序列化后的属性值及各序列化后的属性值对应的包括分解信息的属性名称。2、 如权利要求l所述的方法,其特征在于,所述根据获取到的属性值所属 的类型序列化获取到的属性值或将获取到的属性值分解为基本类型后再序列化 的步骤具体包括如果获取到的属性值为基本类型,则序列化该属性值,将序列化后的属性 值和对应的包括分解信息的属性名称组成键值对;如果获取到的属性值为非基本类型,则循环分解该属性值的各属性,得到 为基本类型的子属性值及对应的包括分解信息的属性名称,再序列化得到的子 属性值,将序列化后的属性值和对应的包括分解信息的属性名称组成键:值对。3、 如权利要求l所述的方法,其特征在于,所述连接所有序列化后的属性 值及各序列化后的属性值对应的包括分解信息的属性名称的连接方式为字符连 接或序列化连接。4、 一种对象反序列化方法,其特征在于,所述方法包括下述步骤 根据连接方式信息拆分接收到的序列化数据,得到序列化后的属性值及对应的包括分解信息的属性名称;才艮据对象属性信息生成各属性值均为空的反序列化对象;根据对象属性信息和得到的序列化后的属性值及对应的包括分解信息的属性名称,给生成的反序列化对象的相应属性值赋值。5 、 如权利要求4所述的方法,其特征在于,得到的所述序列化后的属性值 及对应的包括分解信息的属性名称组成4建值对。6、 如权利要求5所述的方法,其特征在于,所述根据对象属性信息和得到 的序列化后的属性值及对应的包括分解信息的属性名称,给生成的反序列化对 象的相应属性值赋值的步骤具体包括根据对象属性信息依次获取生成的反序列化对象包括的各属性名称及对应 的属性值类型;如果获取到的属性值类型为基本类型,则根据获取到的属性名称在拆分得 到的键值对中查找到对应的序列化后的属性值,将查找到的序列化后的属性值 反序列化后赋予反序列化对象的相应属性值;如果获取到的属性值类型为非基本类型,则根据对象属性信息、获取到的 属性名称和拆分得到的键:值对生成属性值对象,将生成的属性值对象赋予M 列化对象的相应属性值。7、 如权利要求6所述的方法,其特征在于,所述根据对象属性信息、获取 到的属性名称和拆分得到的4建值对生成属性值对象的步骤具体包括根据对象属性信息和获取到的属性名称生成各子属性值均为空的属性值对象;根据对象属性信息依次获取生成的属性值对象包括的各子属性名称及对应 的子属性值类型;如果获取到的子属性值类型为基本类型,则根据获取到的子属性名称及对 应的所有上级属性名称在拆分得到的键值对中查找到对应的序列化后的属性 值,将查找到的序列化后的属性值反序列化后赋予该属性值对象的相应属性值;如果获取到的子属性值类型为非基本类型,则根据...

【专利技术属性】
技术研发人员:曹澜
申请(专利权)人:金蝶软件中国有限公司
类型:发明
国别省市:94[中国|深圳]

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

1