一种反序列化方法及装置制造方法及图纸

技术编号:15982349 阅读:82 留言:0更新日期:2017-08-12 05:33
本申请提供了一种反序列化方法及装置,所述方法包括:获取序列化数据,所述序列化数据包括待重建对象的第一属性;对所述序列化数据进行解析以生成第一键值对,所述第一键值对包括第一键信息和第一值信息,所述第一键信息与所述第一值信息具有对应关系;根据预先设置的所述第一键信息和所述第一属性的对应关系,将所述第一属性赋值为所述第一键信息对应的所述第一值信息。可见,由于本申请实施例中无需通过反射的方式获得待重建对象具有的属性,因此不需要占用过多的硬件资源,从而提高了反序列化的效率。

【技术实现步骤摘要】
一种反序列化方法及装置
本申请涉及计算机
,尤其是涉及一种反序列化方法及装置。
技术介绍
序列化和反序列化是计算机领域常用的技术。序列化用于将对象的属性值转换为序列化数据,从而能够对序列化数据进行保存或者传输等操作。反序列化为序列化的逆过程,用于对序列化数据解析获得对象的属性值,根据属性值对待重建对象的属性进行赋值。举例说明,User是一个表示用户的类,user是一个User类的对象,user具有属性:userID,属性userID的属性值为0001。将user的属性值保存为序列化数据,例如xml格式或者json格式的数据的过程即为一种序列化,而从xml格式或者json格式的数据中解析出user的属性值,根据user的属性值对user的属性进行赋值的过程即为一种反序列化。目前在实现反序列化时,首先要通过反射的方式获得待重建对象具有的属性,之后通过解析序列化数据获得属性对应的属性值,并根据获得的属性值对属性赋值。然而,目前在通过反射的方式获得所述待重建对象具有的属性时,通常会占用较多的硬件资源,从而造成反序列化的效率较低。
技术实现思路
本申请解决的技术问题在于提供一种反序列化方法及装置,无需通过反射的方式获得待重建对象具有的属性,从而节约了硬件资源以提高反序列化的效率。为此,本申请解决技术问题的技术方案是:本申请提供了一种反序列化方法,包括:获取序列化数据,所述序列化数据包括待重建对象的第一属性;对所述序列化数据进行解析以生成第一键值对,所述第一键值对包括第一键信息和第一值信息,所述第一键信息与所述第一值信息具有对应关系;根据预先设置的所述第一键信息和所述第一属性的对应关系,将所述第一属性赋值为所述第一键信息对应的所述第一值信息。可选的,所述序列化数据还包括所述待重建对象的第二属性;所述方法还包括:对所述序列化数据进行解析以生成第二键值对,所述第二键值对包括第二键信息和第二值信息,所述第二键信息与所述第二值信息具有对应关系;根据预先设置的所述第二键信息和所述第二属性的对应关系,将所述第二属性赋值为所述第二键信息对应的所述第二值信息。可选的,所述第一属性具有子属性;所述方法还包括:建立所述待重建对象的第一子对象;所述根据预先设置的所述第一键信息和所述第一属性的对应关系,将所述第一属性赋值为所述第一键信息对应的所述第一值信息,包括:根据预先设置的所述第一键信息和所述子属性的对应关系,将所述第一子对象的属性赋值为所述第一键信息对应的所述第一值信息。可选的,所述第一属性为集合格式;所述方法还包括:建立所述待重建对象的第二子对象,所述第二子对象为集合类型;将所述第一属性赋值为所述第一键信息对应的所述第一值信息,包括:通过循环方式将所述第二子对象的属性赋值为所述第一键信息对应的所述第一值信息,以得到所述第二子对象的属性值;将所述第一属性赋值为所述第二子对象的属性值。可选的,所述获取序列化数据,包括:调用与所述待重建对象对应的API;获取调用所述API的返回数据,将所述返回数据作为所述序列化数据。本申请还提供了一种反序列化装置,包括:获取单元,用于获取序列化数据,所述序列化数据包括待重建对象的第一属性;生成单元,用于对所述序列化数据进行解析以生成第一键值对,所述第一键值对包括第一键信息和第一值信息,所述第一键信息与所述第一值信息具有对应关系;赋值单元,用于根据预先设置的所述第一键信息和所述第一属性的对应关系,将所述第一属性赋值为所述第一键信息对应的所述第一值信息。可选的,所述序列化数据还包括所述待重建对象的第二属性;所述生成单元还用于,对所述序列化数据进行解析以生成第二键值对,所述第二键值对包括第二键信息和第二值信息,所述第二键信息与所述第二值信息具有对应关系;所述赋值单元还用于,根据预先设置的所述第二键信息和所述第二属性的对应关系,将所述第二属性赋值为所述第二键信息对应的所述第二值信息。可选的,所述第一属性具有子属性;所述装置还包括:第一建立单元,所述第一建立单元用于建立所述待重建对象的第一子对象;所述赋值单元具体用于:根据预先设置的所述第一键信息和所述子属性的对应关系,将所述第一子对象的属性赋值为所述第一键信息对应的所述第一值信息。可选的,所述第一属性为集合格式;所述装置还包括:第二建立单元,所述第二建立单元用于建立所述待重建对象的第二子对象,所述第二子对象为集合类型;当将所述第一属性赋值为所述第一键信息对应的所述第一值信息,所述赋值单元具体用于:通过循环方式将所述第二子对象的属性赋值为所述第一键信息对应的所述第一值信息,以得到所述第二子对象的属性值;将所述第一属性赋值为所述第二子对象的属性值。可选的,所述获取单元具体用于:调用与所述待重建对象对应的API;获取调用所述API的返回数据,将所述返回数据作为所述序列化数据。通过上述技术方案可知,本申请实施例在获取序列化数据后,对所述序列化数据进行解析生成第一键值对,其中,所述序列化数据包括待重建对象的第一属性,所述第一键值对包括具有对应关系的第一键信息和第一值信息。其中,由于所述待重建对象具有所述第一属性是所述待重建对象的固有特征,因此本申请实施例中无需通过反射的方式获得待重建对象具有的属性,而是预先设置出所述第一属性和所述第一键信息具有对应关系,从而可以根据该对应关系,将所述第一属性赋值为所述第一键信息对应的所述第一值信息,实现了对所述待重建对象的所述第一属性的反序列化。可见,由于本申请实施例中无需通过反射的方式获得待重建对象具有的属性,因此不需要占用过多的硬件资源,从而提高了反序列化的效率。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其它的附图。图1为本申请实施例提供的一种方法实施例的流程示意图;图2为本申请实施例提供的另一种方法实施例的流程示意图;图3为本申请实施例提供的一种装置实施例的结构示意图。具体实施方式下面通过一个例子对目前反序列化的方式进行说明。User是一个表示用户的类,user是一个User类的对象,即User类的一个实例,user具有属性:userID,属性userID的属性值为0001,通过序列化将user的属性值0001转换为序列化数据,例如json格式的数据:{“userID”:“0001”}反序列化的过程是:首先通过反射的方式获得user具有的属性:userID,之后通过解析序列化数据获得属性对应的属性值,例如,将通过反射获得的属性userID与序列化数据进行匹配,从而获得属性userID对应的属性值为0001,再根据获得的属性值0001对属性userID赋值,即实现对属性userID的反序列化。当对user的所有属性均进行赋值后,即实现重建对象user。然而,在通过反射方式获得user具有的属性时,通常会占用较多的硬件资源,从而造成反序列化的效率较低。此外,这种方式还具有以下问题:由于一些编程语言并不支持通过反射方式获得待重建对象具有的属性,从而可能导致无法实现反序列化;由于序列化数据可能存在多种格式,例如xml格式或者json格式,因此针对于不同的格本文档来自技高网...
一种反序列化方法及装置

【技术保护点】
一种反序列化方法,其特征在于,包括:获取序列化数据,所述序列化数据包括待重建对象的第一属性;对所述序列化数据进行解析以生成第一键值对,所述第一键值对包括第一键信息和第一值信息,所述第一键信息与所述第一值信息具有对应关系;根据预先设置的所述第一键信息和所述第一属性的对应关系,将所述第一属性赋值为所述第一键信息对应的所述第一值信息。

【技术特征摘要】
1.一种反序列化方法,其特征在于,包括:获取序列化数据,所述序列化数据包括待重建对象的第一属性;对所述序列化数据进行解析以生成第一键值对,所述第一键值对包括第一键信息和第一值信息,所述第一键信息与所述第一值信息具有对应关系;根据预先设置的所述第一键信息和所述第一属性的对应关系,将所述第一属性赋值为所述第一键信息对应的所述第一值信息。2.根据权利要求1所述的方法,其特征在于,所述序列化数据还包括所述待重建对象的第二属性;所述方法还包括:对所述序列化数据进行解析以生成第二键值对,所述第二键值对包括第二键信息和第二值信息,所述第二键信息与所述第二值信息具有对应关系;根据预先设置的所述第二键信息和所述第二属性的对应关系,将所述第二属性赋值为所述第二键信息对应的所述第二值信息。3.根据权利要求1所述的方法,其特征在于,所述第一属性具有子属性;所述方法还包括:建立所述待重建对象的第一子对象;所述根据预先设置的所述第一键信息和所述第一属性的对应关系,将所述第一属性赋值为所述第一键信息对应的所述第一值信息,包括:根据预先设置的所述第一键信息和所述子属性的对应关系,将所述第一子对象的属性赋值为所述第一键信息对应的所述第一值信息。4.根据权利要求1所述的方法,其特征在于,所述第一属性为集合格式;所述方法还包括:建立所述待重建对象的第二子对象,所述第二子对象为集合类型;将所述第一属性赋值为所述第一键信息对应的所述第一值信息,包括:通过循环方式将所述第二子对象的属性赋值为所述第一键信息对应的所述第一值信息,以得到所述第二子对象的属性值;将所述第一属性赋值为所述第二子对象的属性值。5.根据权利要求1至4任一项所述的方法,其特征在于,所述获取序列化数据,包括:调用与所述待重建对象对应的API;获取调用所述API的返回数据,将所述返回数据作为所述序列化数据。6.一种反序列化装置,其特...

【专利技术属性】
技术研发人员:马立杰
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1