数据序列化、数据反序列方法、装置及设备制造方法及图纸

技术编号:20362479 阅读:16 留言:0更新日期:2019-02-16 16:21
本说明书提供一种数据序列化、数据反序列方法、装置及设备,通过获取待序列化对象的类型,并使对象数据序列化所得的JSON格式数据中包含有附加数据,利用该附加数据表征所述待序列化对象具有附加属性,附加属性的属性名包括目标标识,附加属性的属性值包括所述类型,基于此,序列化结果中包含了待序列化对象的类型,因此在反序列化过程中,可以通过识别目标标识获取到对象的类型,从而可以防止类型信息丢失造成的反序列化失败。该方案不会丢失类型信息,并且遵循JSON格式,可以兼容已有JSON协议,可以方便、无侵入地应用于需要JSON序列化的场景中。

【技术实现步骤摘要】
数据序列化、数据反序列方法、装置及设备
本说明书涉及数据处理
,尤其涉及数据序列化、数据反序列方法、装置及设备。
技术介绍
序列化技术广泛应用于安全云服务平台,主要实现将对象串行化为二进制字节流,既而将该字节流保存至存储设备(如磁盘)中或将该字节流传输。目前,主流的序列化技术包括可扩展标记语言XML(ExtensibleMarkupLanguage)技术和JSON(JavaScriptObjectNotation)技术等,其序列化过程为:将对象的各个属性的名称及其属性值分别进行整体串行化,再将串行化后的各个字符串进行连接得到二进制字节流。而反序列化过程与上述序列化过程相反。实际应用中,由于在序列化过程可能存在信息丢失问题,从而导致反序列失败的情况,基于此,需要提供更为稳定的序列化方案。
技术实现思路
为克服相关技术中存在的问题,本说明书提供了数据序列化、数据反序列方法、装置及设备。根据本说明书实施例的第一方面,提供一种数据序列化方法,所述方法包括:针对待序列化的对象数据,获取所述对象数据中待序列化对象的类型;将所述对象数据序列化为包含有附加数据的JSON格式数据,所述附加数据表征所述待序列对象具有附加属性,所述附加属性的属性名包括目标标识,所述附加属性的属性值包括所述类型。可选的,所述待序列化对象的类型包括:除了编程语言内置类型之外的其他类型。可选的,所述目标标识与所述对象数据中的属性名不同。可选的,所述目标标识的首个字符为下划线。可选的,所述JSON格式数据通过如下方式获得:将所述对象数据和所述附加数据分别按照JSON协议进行序列化后,将所述附加数据的序列化结果添加至所述对象数据的序列化结果中,获得所述JSON格式数据;或,为所述待序列化对象新增所述附加属性,将新增所述附加属性后的对象数据序列化为所述JSON格式数据。根据本说明书实施例的第二方面,提供一种数据反序列方法,包括:获取待反序列化的JSON格式数据;其中,所述JSON格式数据包含有附加数据,所述附加数据表征对象具有附加属性,所述附加属性的属性名包括目标标识,所述附加属性的属性值包括所述类型;将所述JSON格式数据进行反序列化,获得对象数据并输出,其中,对象的类型通过如下方式获得:从所述JSON格式数据中识别到包括目标标识的属性名后,从对应所述属性名的属性值中获取得到。根据本说明书实施例的第三方面,提供一种数据序列化装置,包括:类型获取模块,用于:针对待序列化的对象数据,获取所述对象数据中待序列化对象的类型;序列化模块,用于:将所述对象数据序列化为JSON格式数据,其中,所述JSON格式数据包含有附加数据,所述附加数据表征所述待序列化对象具有附加属性,所述附加属性的属性名包括目标标识,所述附加属性的属性值包括所述类型。可选的,所述待序列化对象的类型包括:除了编程语言内置类型之外的其他类型。可选的,所述目标标识与所述对象数据中的属性名不同。可选的,所述目标标识的首个字符为下划线。可选的,所述序列化模块,还用于:将所述对象数据和所述附加数据分别按照JSON协议进行序列化后,将所述附加数据的序列化结果添加至所述对象数据的序列化结果中,获得所述JSON格式数据;或,为所述待序列化对象新增所述附加属性,将新增所述附加属性后的对象数据序列化为所述JSON格式数据。根据本说明书实施例的第四方面,提供一种数据反序列装置,包括:数据获取模块,用于:获取待反序列化的JSON格式数据;其中,所述JSON格式数据包含有附加数据,所述附加数据表征对象具有附加属性,所述附加属性的属性名包括目标标识,所述附加属性的属性值包括所述类型;反序列化模块,用于:将所述JSON格式数据进行反序列化,获得对象数据并输出,其中,对象的类型通过如下方式获得:从所述JSON格式数据中识别到包括目标标识的属性名后,从对应所述属性名的属性值中获取得到。根据本说明书实施例的第五方面,提供一种数据序列化设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如下方法:针对待序列化的对象数据,获取所述对象数据中待序列化对象的类型;将所述对象数据序列化为包含有附加数据的JSON格式数据,所述附加数据表征所述待序列化对象具有附加属性,所述附加属性的属性名包括目标标识,所述附加属性的属性值包括所述类型。根据本说明书实施例的第六方面,提供一种数据反序列化设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如下方法:获取待反序列化的JSON格式数据;其中,所述JSON格式数据包含有附加数据,所述附加数据表征对象具有附加属性,所述附加属性的属性名包括目标标识,所述附加属性的属性值包括所述类型;将所述JSON格式数据进行反序列化,获得对象数据并输出,其中,对象的类型通过如下方式获得:从所述JSON格式数据中识别到包括目标标识的属性名后,从对应所述属性名的属性值中获取得到。本说明书的实施例提供的技术方案可以包括以下有益效果:在序列化过程中,本说明书实施例可以获取待序列化对象的类型,并使对象数据序列化所得的JSON格式数据中包含有附加数据,利用该附加数据表征所述待序列化对象具有附加属性,附加属性的属性名包括目标标识,附加属性的属性值包括所述类型,基于此,序列化结果中包含了待序列化对象的类型,因此在反序列化过程中,可以通过识别目标标识获取到对象的类型,从而可以防止类型信息丢失造成的反序列化失败。该方案不会丢失类型信息,并且遵循JSON格式,可以兼容已有JSON协议,可以方便、无侵入地应用于需要JSON序列化的场景中。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。图1A和图1B分别是本说明书根据一示例性实施例示出的涉及多态性的对象的示意图。图2A是本说明书根据一示例性实施例示出的一种数据序列化方法的流程图。图2B是本说明书根据一示例性实施例示出的对一Outter类型的对象数据的序列化过程示意图。图3是本说明书根据一示例性实施例示出的一种数据序列化方法的流程图。图4是本说明书实施例数据序列化装置/数据反序列装置所在设备的一种硬件结构图。图5是本说明书根据一示例性实施例示出的一种数据序列化装置的框图。图6是本说明书根据一示例性实施例示出的一种数据反序列装置的框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能本文档来自技高网...

【技术保护点】
1.一种数据序列化方法,包括:针对待序列化的对象数据,获取所述对象数据中待序列化对象的类型;将所述对象数据序列化为包含有附加数据的JSON格式数据,所述附加数据表征所述待序列对象具有附加属性,所述附加属性的属性名包括目标标识,所述附加属性的属性值包括所述类型。

【技术特征摘要】
1.一种数据序列化方法,包括:针对待序列化的对象数据,获取所述对象数据中待序列化对象的类型;将所述对象数据序列化为包含有附加数据的JSON格式数据,所述附加数据表征所述待序列对象具有附加属性,所述附加属性的属性名包括目标标识,所述附加属性的属性值包括所述类型。2.根据权利要求1所述的方法,所述待序列化对象的类型包括:除了编程语言内置类型之外的其他类型。3.根据权利要求1所述的方法,所述目标标识与所述对象数据中的属性名不同。4.根据权利要求1所述的方法,所述目标标识的首个字符为下划线。5.根据权利要求1所述的方法,所述JSON格式数据通过如下方式获得:将所述对象数据和所述附加数据分别按照JSON协议进行序列化后,将所述附加数据的序列化结果添加至所述对象数据的序列化结果中,获得所述JSON格式数据;或,为所述待序列化对象新增所述附加属性,将新增所述附加属性后的对象数据序列化为所述JSON格式数据。6.一种数据反序列方法,包括:获取待反序列化的JSON格式数据;其中,所述JSON格式数据包含有附加数据,所述附加数据表征对象具有附加属性,所述附加属性的属性名包括目标标识,所述附加属性的属性值包括所述类型;将所述JSON格式数据进行反序列化,获得对象数据并输出,其中,对象的类型通过如下方式获得:从所述JSON格式数据中识别到包括目标标识的属性名后,从对应所述属性名的属性值中获取得到。7.一种数据序列化装置,包括:类型获取模块,用于:针对待序列化的对象数据,获取所述对象数据中待序列化对象的类型;序列化模块,用于:将所述对象数据序列化为包含有附加数据的JSON格式数据,所述附加数据表征所述待序列化对象具有附加属性,所述附加属性的属性名包括目标标识,所述附加属性的属性值包括所述类型。8.根据权利要求7所述的装置,所述待序列化对象的类型包括:除了编程语言内置类型之外的其他类型。9.根据权利要求7所述的装置,所述目标标识与所述对象数据中的属性名不同。1...

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

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

1