CN103425632A - 一种序列化的方法、装置及处理器 - Google Patents
一种序列化的方法、装置及处理器 Download PDFInfo
- Publication number
- CN103425632A CN103425632A CN2013103907232A CN201310390723A CN103425632A CN 103425632 A CN103425632 A CN 103425632A CN 2013103907232 A CN2013103907232 A CN 2013103907232A CN 201310390723 A CN201310390723 A CN 201310390723A CN 103425632 A CN103425632 A CN 103425632A
- Authority
- CN
- China
- Prior art keywords
- data
- serializing
- treatment
- property
- nested
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种序列化的方法,该方法在确定待序列化的数据为嵌套的自定义类型的数据后,生成相应的嵌套协议;根据所述嵌套协议,获取待序列化的数据的属性名称和所述属性名称对应的属性值,生成相应的第一键值对;获取被嵌套的数据的属性名称和所述属性名称对应的属性值,生成相应的第二键值对;根据待序列化的数据的嵌套关系,将第一键值对和第二键值对放入中间类型的数据中;最后,将包含有第一键值对和第二键值对的所述中间类型的数据序列化。本发明公开的序列化的方法,能够将嵌套的自定义类型的数据的属性进行序列化,从而能够直接对其进行序列化,而不需要再对工作人员手动设置属性,减少了对人力和时间的消耗,提高了序列化的效率。
Description
技术领域
本发明涉及计算机领域,特别是涉及一种序列化的方法、装置及处理器。
背景技术
序列化指的是将对象状态转换为可保持或传输的格式的过程,能够用于对数据进行存储和传输,具有广泛的应用。例如,当需要些数据到本地硬盘或者通过网络传输数据之前,需要对其进行序列化,将所述数据转化成二进制文件,从而便于所述数据在硬盘上的读写或者网络的传输。
在面向对象的编程语言Objective-c中,提供了一种二进制序列化的方法。面向对象的程序在运行过程中,需要存储或传输数据时,会根据所述数据创建一个相应的对象图,然后利用所述二进制序列化的方法,对所述对象图以二进制的方式对其进行序列化,获取相应的二进制流,并将数据的属性信息也进行序列化,将其加载至所述二进制流中,再将所述二进制流通过网络传送或者写入文件中,实现对所述数据的序列化。另外,在Objective-c中,完成一个项目往往需要大量自定义类型的数据,对所述自定义类型的数据进行序列化时,需要将其转化为一个中间类型的数据,然后再对转化后的数据进行序列化。
但是,发明人发现,在Objective-c中,在对数据进行序列化时,只能获取基础数据类型的数据的属性信息,或者,在获取自定义类型的数据时,只能获取非嵌套类型的属性信息,而无法获取嵌套的自定义类型的数据的属性,在对嵌套的自定义类型的数据进行二进制序列化时,需要工作人员手动输入待序列化数据的属性,耗费大量人力和时间。
发明内容
有鉴于此,本发明的目的在于提供一种序列化的方法、装置及处理器,以解决上述问题,具体实施方案如下:
一种序列化的方法,包括:
在确定待序列化的数据为嵌套的自定义类型的数据后,根据所述待序列化的数据,获取相应的嵌套协议;
根据所述嵌套协议,获取所述待序列化的数据的属性名称和所述属性名称对应的属性值,并将所述属性名称和属性值封装,生成相应的第一键值对;
获取所述待序列化的数据中被嵌套的数据的属性名称和所述属性名称对应的属性值,并将所述被嵌套的数据的所述属性名称和属性值封装,生成相应的第二键值对;
按照所述待序列化的数据的嵌套关系,分别将所述第一键值对和第二键值对放入中间类型的数据中;
将包含有所述第一键值对和第二键值对的所述中间类型的数据序列化。
优选的,所述序列化的方法还包括:
获取所述待序列化的数据,并根据所述待序列化的数据的数据类型名称,获取所述待序列化的数据的属性名称,作为第一属性描述信息;
遍历所述待序列化的数据,并根据遍历结果生成相应的属性名称,作为第二属性描述信息;
对比所述第一属性描述信息和所述第二属性描述信息是否相同,若所述第二属性描述信息中含有所述第一属性描述信息中没有的属性信息,则说明所述待序列化的数据为嵌套的自定义类型的数据。
优选的,所述根据所述嵌套协议,获取所述待序列化的数据的属性名称和所述属性名称对应的属性值,包括:
根据所述嵌套协议,获取所述待序列化的数据的属性列表,其中,所述属性列表中包括所述待序列化的数据中的所有属性名称,并且,根据所述嵌套协议,获取属性名称和属性值的对应关系;
根据所述属性名称,和所述属性名称和属性值的对应关系,获取所述待序列化的数据的属性名称对应的属性值。
优选的,所述中间类型为NSDictionary字典类型。
相应的,本发明还公开了一种序列化的装置,包括:
嵌套协议获取模块,用于在确定待序列化的数据为嵌套的自定义类型的数据后,根据所述待序列化的数据,获取相应的嵌套协议;
第一键值对生成模块,用于根据所述嵌套协议,获取所述待序列化的数据的属性名称和所述属性名称对应的属性值,并将所述属性名称和属性值封装,生成相应的第一键值对;
第二键值对生成模块,用于获取所述待序列化的数据中被嵌套的数据的属性名称和所述属性名称对应的属性值,并将所述被嵌套的数据的所述属性名称和属性值封装,生成相应的第二键值对;
放置模块,用于按照所述待序列化的数据的嵌套关系,分别将所述第一键值对和第二键值对放入中间类型的数据中;
序列化模块,用于将包含有所述第一键值对和第二键值对的所述中间类型的数据序列化。
优选的,所述序列化的装置还包括:
第一获取模块,用于获取所述待序列化的数据,并根据所述待序列化的数据的数据类型名称,获取所述待序列化的数据的属性名称,作为第一属性描述信息;
第二获取模块,用于遍历所述待序列化的数据,并根据遍历结果生成相应的属性名称,作为第二属性描述信息;
类型判断模块,用于对比所述第一属性描述信息和所述第二属性描述信息是否相同,若所述第二属性描述信息中含有所述第一属性描述信息中没有的属性信息,则说明所述待序列化的数据为嵌套的自定义类型的数据。
优选的,所述第一键值对生成模块包括属性值获取单元和封装单元,所述属性值获取单元用于根据所述嵌套协议,获取所述待序列化的数据的属性名称和所述属性名称对应的属性值,所述封装单元用于将所述属性名称和属性值封装,生成相应的第一键值对,其中,所述属性值获取单元包括:
第一获取子单元,用于根据所述嵌套协议,获取所述待序列化的数据的属性列表,其中,所述属性列表中包括所述待序列化的数据中的所有属性名称,并且,根据所述嵌套协议,获取属性名称和属性值的对应关系;
第二获取子单元,用于根据所述属性名称,和所述属性名称和属性值的对应关系,获取所述待序列化的数据的属性名称对应的属性值。
优选的,所述中间类型为NSDictionary字典类型。
相应的,本发明还公开了一种处理器,所述处理器的芯片上集成有如上所述的序列化的装置。
本申请公开了一种序列化的方法,该方法在确定待序列化的数据为嵌套的自定义类型的数据后,首先生成相应的嵌套协议;继而根据所述嵌套协议,获取所述待序列化的数据的属性名称和所述属性名称对应的属性值,生成相应的第一键值对;获取被嵌套的数据的属性名称和所述属性名称对应的属性值,生成相应的第二键值对;根据所述待序列化的数据的嵌套关系,将所述第一键值对和第二键值对放入中间类型的数据中;最后,将包含有所述第一键值对和第二键值对的所述中间类型的数据序列化。
采用本申请公开的序列化的方法,能够将嵌套的自定义类型的数据的属性进行序列化,从而能够直接对其进行序列化,而不需要再对工作人员手动设置属性,减少了对人力和时间的消耗,提高了序列化的效率。
进一步的,现有技术中,工作人员在设置嵌套的自定义类型的数据的属性时,有时会因为疏忽出现错误,而本申请公开的序列化的方法,自动将嵌套的自定义类型的数据的属性进行序列化,不再需要手动输入,提高了序列化的准确度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种序列化的方法的工作流程示意图;
图2为本发明实施例公开的又一种序列化的方法的工作流程示意图;
图3为本发明实施例公开的一种序列化的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中,在对数据进行序列化时,无法对嵌套的自定义类型的数据进行序列化,为了解决这个问题,本申请提供了一种序列化的方法,参见图1所示的工作流程示意图,所述序列化的方法包括:
步骤S11、在确定待序列化的数据为嵌套的自定义类型的数据后,根据所述待序列化的数据,获取相应的嵌套协议。
预先对所述待序列化的数据进行判别,当判断得知所述待序列化的为嵌套的自定义类型的数据后,则获取相应的嵌套协议(protocol)。其中,所述嵌套协议(protocol)中包括所述待序列化的数据的属性名称,以及属性名称和属性值间的对应关系。
其中,所述属性名称由所述待序列化的数据的数据类型确定,而各个属性名称和属性值间的对应关系,通常预先存储在处理器中,根据所述数据类型获取所述属性名称后,从所述处理器中提取所述数据类型确定的属性名称和属性值间的对应关系,并根据所述属性名称,以及所述属性名称和属性值间的对应关系,生成相应的嵌套协议。
步骤S12、根据所述嵌套协议,获取所述待序列化的数据的属性名称和所述属性名称对应的属性值,并将所述属性名称和属性值封装,生成相应的第一键值对。
数据的属性包括属性名称和与所述属性名称对应的属性值。通常,所述属性名称和属性值构成的第一键值对,以“属性名称-属性值”的形式实现。
特别的,每个属性也是有其自身的属性的,所述待序列化的数据的属性名称和所述属性名称对应的属性值中,包括数据自身的属性名称和属性值,还包括数据自身的属性的属性名称和属性值。
步骤S13、获取所述待序列化的数据中被嵌套的各数据的属性名称和所述属性名称对应的属性值,并将所述被嵌套的数据的所述属性名称和属性值封装,生成相应的第二键值对。
所述第二键值对,通常也以“属性名称-属性值”的形式实现。
另外,嵌套的数据类型通常为a(b)的形式,其中,数据b为被嵌套的数据类型,在根据嵌套协议获取所述待序列化的数据的属性名称和属性值时,只能获取到数据a的所有的属性名称和属性值。为了保证序列化后的数据的完整性,还需要对数据b进行序列化。也就是说,还需要获取待序列化的数据中,被嵌套的数据的属性名称和属性值。
另外,如果数据b中还存在嵌套的数据,则还需要再获取被所述数据b嵌套的数据的属性名称和属性值,并生成相应的第二键值对。也就是说,在获取数据b的属性名称和属性值后,若数据b中还存在嵌套的数据,则将所述嵌套数据作为当前数据,继续获取数据b中的所述嵌套数据的属性名称和属性值,然后判断所述当前数据中是否还存在嵌套数据,若还存在,则将所述存在的嵌套数据作为当前数据,继续获取所述当前数据的属性名称和属性值,直到当前数据中不再含有嵌套数据。
本申请中,按照上述方法,获取所述待序列化的数据中,被嵌套的各数据的属性名称和属性值,并依次生成各自的第二键值对。
特别的,所述被嵌套的数据的属性名称和属性值中,包括数据自身的属性名称和属性值,还包括数据自身的属性的属性名称和属性值。
步骤S14、按照所述待序列化的数据的嵌套关系,分别将所述第一键值对和第二键值对放入中间类型的数据中。
由于所述待序列化的数据为嵌套的自定义类型的数据,父类下还可能存在多重的嵌套形式,例如,为“a(b(c))”,这种情况下,在步骤S12中,获取了数据a生成的第一键值对,在步骤S13中,分别获取了被嵌套的数据b和数据c的属性名称和属性值,并分别生成了与所述数据b和数据c相对应的第二键值对。在获取到所述待序列化的数据的嵌套关系,会按照嵌套关系,放入中间类型propertyDict的数据中,例如,将第一键值对和第二键值对构建成“a对应的第一键值对(b对应的第二键值对(c对应的第二键值对))”的形式,存放入中间类型的数据中。
另外,所述中间类型通常为NSDictionary字典类型。当然,也可以转化为其他可以进行序列化的类型,本申请对此不作限定。
步骤S15、将包含有所述第一键值对和第二键值对的所述中间类型的数据序列化。
由于包含有所述第一键值对和第二键值对的数据为中间类型,可利用Objective-c中常用的二进制序列化方式,对其进行序列化。当然,也可以采用现有技术中的其他方式,对中间类型的数据进行序列化,本申请对此不作限定。
本申请公开了一种序列化的方法,该方法在确定待序列化的数据为嵌套的自定义类型的数据后,首先生成相应的嵌套协议;继而根据所述嵌套协议,获取所述待序列化的数据的属性名称和所述属性名称对应的属性值,生成相应的第一键值对;获取被嵌套的数据的属性名称和所述属性名称对应的属性值,生成相应的第二键值对;根据所述待序列化的数据的嵌套关系,将所述第一键值对和第二键值对放入中间类型的数据中;最后,将包含有所述第一键值对和第二键值对的所述中间类型的数据序列化。
采用本申请公开的序列化的方法,能够将嵌套的自定义类型的数据的属性进行序列化,从而能够直接对其进行序列化,而不需要再对工作人员手动设置属性,减少了对人力和时间的消耗,提高了序列化的效率。
进一步的,现有技术中,工作人员在设置嵌套的自定义类型的数据的属性时,有时会因为疏忽出现错误,而本申请公开的序列化的方法,自动将嵌套的自定义类型的数据的属性进行序列化,不再需要手动输入,提高了序列化的准确度。
进一步的,参见图2所示的工作流程示意图,所述序列化的方法还包括:
步骤S21、获取所述待序列化的数据,并根据所述待序列化的数据的数据类型名称,获取所述待序列化的数据的属性名称,作为第一属性描述信息。
当所述待序列化的数据为“a(b(c))”的形式时,根据其数据类型名称,能够获取数据a的属性名称。
在Objective-c中,根据待序列化的数据的数据类型名称,获取其对应的属性名称(class_copyPropertyList()),通常通过api方法class_copyPropertyList()即可实现。
步骤S22、遍历所述待序列化的数据,并根据遍历结果生成相应的属性名称,作为第二属性描述信息。
当所述待序列化的数据为“a(b(c))”的形式时,对其进行遍历,可获取其中数据a的属性名称,以及被嵌套的数据b和数据c的属性名称。
步骤S23、对比所述第一属性描述信息和所述第二属性描述信息是否相同,若所述第二属性描述信息中含有所述第一属性描述信息中没有的属性信息,则说明所述待序列化的数据为嵌套的自定义类型的数据。
在获取到待序列化的数据后,根据上述步骤公开的方法,即可判断出所述待序列化的数据是否为嵌套的自定义类型的数据。
进一步的,步骤S12中,公开了根据所述嵌套协议,获取所述待序列化的数据的属性名称和所述属性名称对应的属性值这一技术方案,该方案包括:
首先,根据所述嵌套协议(protocol),获取所述待序列化的数据的属性列表(protocol_copyPropertyList()),其中,所述属性列表中包括所述待序列化的数据中的所有属性名称,并且,根据所述嵌套协议,获取属性名称和属性值的对应关系。
同一个数据类型,往往具有多个属性。当所述待序列化的数据为“a(b(c))”的形式时,所述嵌套协议中,包含有数据a的属性名称,以及数据a的属性名称和其对应的属性值的对应关系。根据所述嵌套协议,即可生成包含数据a的所有属性名称的属性列表,以及各个属性名称和属性值的对应关系。
其次,根据所述属性名称,和所述属性名称和属性值的对应关系,获取所述待序列化的数据的属性名称对应的属性值。
根据上述方法,即可获取所述待序列化的数据的属性名称和所述属性名称对应的属性值。
通过上述公开的序列化的方法,本申请能够获取到嵌套的自定义类型的数据的属性,并获取其中被嵌套的数据的属性,放置在中间类型的数据中,再对放置对其进行序列化,从而实现了对嵌套的自定义类型的数据的属性的序列化,解决了现有技术中,在对嵌套的自定义类型的数据进行序列化时,由于无法获取数据的属性,从而无法对其进行序列化的问题。
相应的,本发明还公开了一种序列化的装置,参见图3所示的结构示意图,所述序列化的装置包括:嵌套协议获取模块11、第一键值对生成模块12、第二键值对生成模块13、放置模块14和序列化模块15,其中,
所述嵌套协议获取模块11,用于在确定待序列化的数据为嵌套的自定义类型的数据后,根据所述待序列化的数据,获取相应的嵌套协议;
第一键值对生成模块12,用于根据所述嵌套协议,获取所述待序列化的数据的属性名称和所述属性名称对应的属性值,并将所述属性名称和属性值封装,生成相应的第一键值对;
第二键值对生成模块13,用于获取所述待序列化的数据中被嵌套的数据的属性名称和所述属性名称对应的属性值,并将所述被嵌套的数据的所述属性名称和属性值封装,生成相应的第二键值对;
放置模块14,用于按照所述待序列化的数据的嵌套关系,分别将所述第一键值对和第二键值对放入中间类型的数据中;
序列化模块15,用于将包含有所述第一键值对和第二键值对的所述中间类型的数据序列化。
进一步的,所述序列化的装置还包括:第一获取模块、第二获取模块和类型判断模块,其中,
所述第一获取模块,用于获取所述待序列化的数据,并根据所述待序列化的数据的数据类型名称,获取所述待序列化的数据的属性名称,作为第一属性描述信息;
所述第二获取模块,用于遍历所述待序列化的数据,并根据遍历结果生成相应的属性名称,作为第二属性描述信息;
所述类型判断模块,用于对比所述第一属性描述信息和所述第二属性描述信息是否相同,若所述第二属性描述信息中含有所述第一属性描述信息中没有的属性信息,则说明所述待序列化的数据为嵌套的自定义类型的数据。
进一步的,所述第一键值对生成模块包括属性值获取单元和封装单元,所述属性值获取单元用于根据所述嵌套协议,获取所述待序列化的数据的属性名称和所述属性名称对应的属性值,所述封装单元用于将所述属性名称和属性值封装,生成相应的第一键值对,其中,所述属性值获取单元包括:
第一获取子单元,用于根据所述嵌套协议,获取所述待序列化的数据的属性列表,其中,所述属性列表中包括所述待序列化的数据中的所有属性名称,并且,根据所述嵌套协议,获取属性名称和属性值的对应关系;
第二获取子单元,用于根据所述属性名称,和所述属性名称和属性值的对应关系,获取所述待序列化的数据的属性名称对应的属性值。
另外,所述中间类型为NSDictionary字典类型。
相应的,本发明还公开另一种处理器,所述处理器包括如上所述的序列化的装置。
采用本申请公开的序列化的装置和处理器,能够将嵌套的自定义类型的数据的属性进行序列化,从而能够直接对其进行序列化,而不需要再由工作人员手动设置属性,减少了对人力和时间的消耗,提高了序列化的效率。
进一步的,现有技术中,工作人员在设置嵌套的自定义类型的数据的属性时,有时会因为疏忽出现错误,而本申请公开的序列化的方法,自动将嵌套的自定义类型的数据的属性进行序列化,不再需要手动输入,提高了序列化的准确度。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (9)
1.一种序列化的方法,其特征在于,包括:
在确定待序列化的数据为嵌套的自定义类型的数据后,根据所述待序列化的数据,获取相应的嵌套协议;
根据所述嵌套协议,获取所述待序列化的数据的属性名称和所述属性名称对应的属性值,并将所述属性名称和属性值封装,生成相应的第一键值对;
获取所述待序列化的数据中被嵌套的各数据的属性名称和所述属性名称对应的属性值,并将所述被嵌套的数据的所述属性名称和属性值封装,生成相应的第二键值对;
按照所述待序列化的数据的嵌套关系,分别将所述第一键值对和第二键值对放入中间类型的数据中;
将包含有所述第一键值对和第二键值对的所述中间类型的数据序列化。
2.根据权利要求1所述的方法,其特征在于,所述序列化的方法还包括:
获取所述待序列化的数据,并根据所述待序列化的数据的数据类型名称,获取所述待序列化的数据的属性名称,作为第一属性描述信息;
遍历所述待序列化的数据,并根据遍历结果生成相应的属性名称,作为第二属性描述信息;
对比所述第一属性描述信息和所述第二属性描述信息是否相同,若所述第二属性描述信息中含有所述第一属性描述信息中没有的属性信息,则说明所述待序列化的数据为嵌套的自定义类型的数据。
3.根据权利要求1所述的方法,其特征在于,所述根据所述嵌套协议,获取所述待序列化的数据的属性名称和所述属性名称对应的属性值,包括:
根据所述嵌套协议,获取所述待序列化的数据的属性列表,其中,所述属性列表中包括所述待序列化的数据中的所有属性名称,并且,根据所述嵌套协议,获取属性名称和属性值的对应关系;
根据所述属性名称,和所述属性名称和属性值的对应关系,获取所述待序列化的数据的属性名称对应的属性值。
4.根据权利要求1所述的方法,其特征在于,所述中间类型为NSDictionary字典类型。
5.一种序列化的装置,其特征在于,包括:
嵌套协议获取模块,用于在确定待序列化的数据为嵌套的自定义类型的数据后,根据所述待序列化的数据,获取相应的嵌套协议;
第一键值对生成模块,用于根据所述嵌套协议,获取所述待序列化的数据的属性名称和所述属性名称对应的属性值,并将所述属性名称和属性值封装,生成相应的第一键值对;
第二键值对生成模块,用于获取所述待序列化的数据中被嵌套的数据的属性名称和所述属性名称对应的属性值,并将所述被嵌套的数据的所述属性名称和属性值封装,生成相应的第二键值对;
放置模块,用于按照所述待序列化的数据的嵌套关系,分别将所述第一键值对和第二键值对放入中间类型的数据中;
序列化模块,用于将包含有所述第一键值对和第二键值对的所述中间类型的数据序列化。
6.根据权利要求5所述的装置,其特征在于,所述序列化的装置还包括:
第一获取模块,用于获取所述待序列化的数据,并根据所述待序列化的数据的数据类型名称,获取所述待序列化的数据的属性名称,作为第一属性描述信息;
第二获取模块,用于遍历所述待序列化的数据,并根据遍历结果生成相应的属性名称,作为第二属性描述信息;
类型判断模块,用于对比所述第一属性描述信息和所述第二属性描述信息是否相同,若所述第二属性描述信息中含有所述第一属性描述信息中没有的属性信息,则说明所述待序列化的数据为嵌套的自定义类型的数据。
7.根据权利要求5所述的装置,其特征在于,所述第一键值对生成模块包括属性值获取单元和封装单元,所述属性值获取单元用于根据所述嵌套协议,获取所述待序列化的数据的属性名称和所述属性名称对应的属性值,所述封装单元用于将所述属性名称和属性值封装,生成相应的第一键值对,其中,所述属性值获取单元包括:
第一获取子单元,用于根据所述嵌套协议,获取所述待序列化的数据的属性列表,其中,所述属性列表中包括所述待序列化的数据中的所有属性名称,并且,根据所述嵌套协议,获取属性名称和属性值的对应关系;
第二获取子单元,用于根据所述属性名称,和所述属性名称和属性值的对应关系,获取所述待序列化的数据的属性名称对应的属性值。
8.根据权利要求5所述的装置,其特征在于,所述中间类型为NSDictionary字典类型。
9.一种处理器,其特征在于,所述处理器的芯片上集成有如权利要求5至权利要求8任一项所述的序列化的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310390723.2A CN103425632B (zh) | 2013-08-30 | 2013-08-30 | 一种序列化的方法、装置及处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310390723.2A CN103425632B (zh) | 2013-08-30 | 2013-08-30 | 一种序列化的方法、装置及处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103425632A true CN103425632A (zh) | 2013-12-04 |
CN103425632B CN103425632B (zh) | 2016-08-10 |
Family
ID=49650397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310390723.2A Active CN103425632B (zh) | 2013-08-30 | 2013-08-30 | 一种序列化的方法、装置及处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103425632B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104360865A (zh) * | 2014-11-28 | 2015-02-18 | 中国建设银行股份有限公司 | 一种序列化方法、反序列化方法及相关设备 |
CN104899316A (zh) * | 2015-06-17 | 2015-09-09 | 北京奇虎科技有限公司 | 游戏数据的序列化与反序列化处理方法及装置 |
CN104954443A (zh) * | 2015-05-26 | 2015-09-30 | 上海摩软通讯技术有限公司 | 局域网中数据传输方法及*** |
CN106294385A (zh) * | 2015-05-19 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 数据对象序列化和反序列化数据对象的方法及装置 |
CN107066429A (zh) * | 2017-03-31 | 2017-08-18 | 柳州译海网络科技有限公司 | 一种互联网间提高传递效率的传递方法 |
CN107577818A (zh) * | 2017-09-30 | 2018-01-12 | 北京酷我科技有限公司 | 一种数据库对象布局模型产生的方法 |
CN107741833A (zh) * | 2017-10-30 | 2018-02-27 | 广东乐心医疗电子股份有限公司 | 可嵌套的key‑value的存储方法及装置 |
CN109388371A (zh) * | 2018-09-26 | 2019-02-26 | 中兴飞流信息科技有限公司 | 一种数据的排序方法、***、协处理装置和主处理装置 |
CN110753050A (zh) * | 2019-10-22 | 2020-02-04 | 网易(杭州)网络有限公司 | 协议文档的生成方法及装置、计算机存储介质、电子设备 |
CN112783706A (zh) * | 2021-01-22 | 2021-05-11 | 山东云海国创云计算装备产业创新中心有限公司 | 一种序列生成方法、***、设备及计算机可读存储介质 |
CN115398856A (zh) * | 2020-04-09 | 2022-11-25 | 国际商业机器公司 | 密钥属性验证 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7093134B1 (en) * | 1997-05-29 | 2006-08-15 | Sun Microsystems, Inc. | Method and apparatus for signing and sealing objects |
CN103019689A (zh) * | 2012-11-21 | 2013-04-03 | 上海富欣智能交通控制有限公司 | 通用的对象序列化的实现方法 |
-
2013
- 2013-08-30 CN CN201310390723.2A patent/CN103425632B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7093134B1 (en) * | 1997-05-29 | 2006-08-15 | Sun Microsystems, Inc. | Method and apparatus for signing and sealing objects |
CN103019689A (zh) * | 2012-11-21 | 2013-04-03 | 上海富欣智能交通控制有限公司 | 通用的对象序列化的实现方法 |
Non-Patent Citations (1)
Title |
---|
HAOERO: "iOS中复杂实体类对象的json序列化", 《HTTP://WWW.COCOACHINA.COM/INDUSTRY/20121117/5112.HTML》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104360865A (zh) * | 2014-11-28 | 2015-02-18 | 中国建设银行股份有限公司 | 一种序列化方法、反序列化方法及相关设备 |
CN104360865B (zh) * | 2014-11-28 | 2018-05-18 | 中国建设银行股份有限公司 | 一种序列化方法、反序列化方法及相关设备 |
CN106294385A (zh) * | 2015-05-19 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 数据对象序列化和反序列化数据对象的方法及装置 |
CN104954443B (zh) * | 2015-05-26 | 2018-09-14 | 上海摩软通讯技术有限公司 | 局域网中数据传输方法及*** |
CN104954443A (zh) * | 2015-05-26 | 2015-09-30 | 上海摩软通讯技术有限公司 | 局域网中数据传输方法及*** |
CN104899316A (zh) * | 2015-06-17 | 2015-09-09 | 北京奇虎科技有限公司 | 游戏数据的序列化与反序列化处理方法及装置 |
CN107066429A (zh) * | 2017-03-31 | 2017-08-18 | 柳州译海网络科技有限公司 | 一种互联网间提高传递效率的传递方法 |
CN107577818A (zh) * | 2017-09-30 | 2018-01-12 | 北京酷我科技有限公司 | 一种数据库对象布局模型产生的方法 |
CN107741833A (zh) * | 2017-10-30 | 2018-02-27 | 广东乐心医疗电子股份有限公司 | 可嵌套的key‑value的存储方法及装置 |
CN109388371A (zh) * | 2018-09-26 | 2019-02-26 | 中兴飞流信息科技有限公司 | 一种数据的排序方法、***、协处理装置和主处理装置 |
CN110753050A (zh) * | 2019-10-22 | 2020-02-04 | 网易(杭州)网络有限公司 | 协议文档的生成方法及装置、计算机存储介质、电子设备 |
CN110753050B (zh) * | 2019-10-22 | 2022-03-04 | 网易(杭州)网络有限公司 | 协议文档的生成方法及装置、计算机存储介质、电子设备 |
CN115398856A (zh) * | 2020-04-09 | 2022-11-25 | 国际商业机器公司 | 密钥属性验证 |
CN112783706A (zh) * | 2021-01-22 | 2021-05-11 | 山东云海国创云计算装备产业创新中心有限公司 | 一种序列生成方法、***、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103425632B (zh) | 2016-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103425632A (zh) | 一种序列化的方法、装置及处理器 | |
US9904694B2 (en) | NoSQL relational database (RDB) data movement | |
CN107885499A (zh) | 一种接口文档生成方法及终端设备 | |
CN107644286A (zh) | 工作流处理方法及装置 | |
WO2014145084A1 (en) | Methods for managing applications using semantic modeling and tagging and devices thereof | |
CN112905624B (zh) | 一种低代码开发平台的数据库扩展方法及设备 | |
CN107341014A (zh) | 电子设备、技术文档的生成方法及装置 | |
CN102129365A (zh) | 一种生成代码说明文档的方法及装置 | |
CN109558380B (zh) | 用于处理工业自动化环境中的工程对象的方法和*** | |
CN108196876A (zh) | 基于文件的php业务配置方法及中心服务器 | |
CN105512425A (zh) | 一种基于图形界面的io pad布局构建方法 | |
CN103095726A (zh) | 一种协议解析器的处理方法和装置 | |
CN108228754A (zh) | 流程生成方法及终端设备 | |
CN103902618A (zh) | 一种文件查找方法及装置 | |
CN106503003A (zh) | 一种可扩展标记语言xml文档的压缩、解压方法和装置 | |
CN110765750A (zh) | 报表数据录入方法及终端设备 | |
CN113434542B (zh) | 数据关系识别方法、装置、电子设备及存储介质 | |
CN113407254B (zh) | 表单生成方法、装置、电子设备及存储介质 | |
CN107766519B (zh) | 一种可视化配置数据结构的方法 | |
CN105808748A (zh) | 一种mib版本对比方法和装置 | |
CN109683917A (zh) | 用于将应用部署于应用服务器的方法、设备以及介质 | |
CN104573132A (zh) | 歌曲查找方法及装置 | |
CN105589918A (zh) | 一种提取页面信息的方法及装置 | |
CN105335156B (zh) | 一种java对象序列化的方法以及*** | |
WO2020063181A1 (zh) | 一种数据处理方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |