CN108763546A - 一种数据格式的转换方法、装置、存储介质及终端 - Google Patents
一种数据格式的转换方法、装置、存储介质及终端 Download PDFInfo
- Publication number
- CN108763546A CN108763546A CN201810553454.XA CN201810553454A CN108763546A CN 108763546 A CN108763546 A CN 108763546A CN 201810553454 A CN201810553454 A CN 201810553454A CN 108763546 A CN108763546 A CN 108763546A
- Authority
- CN
- China
- Prior art keywords
- data
- format
- array
- relationship
- hierarchical relationship
- 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.)
- Pending
Links
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 56
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000004590 computer program Methods 0.000 claims description 10
- 241000406668 Loxodonta cyclotis Species 0.000 claims description 3
- 230000000875 corresponding effect Effects 0.000 description 14
- 238000003491 array Methods 0.000 description 12
- 230000000694 effects Effects 0.000 description 6
- 230000002596 correlated effect Effects 0.000 description 4
- 238000010606 normalization Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 210000001072 colon Anatomy 0.000 description 2
- 230000032696 parturition Effects 0.000 description 2
- 238000000547 structure data Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013497 data interchange Methods 0.000 description 1
- 238000013506 data mapping Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Landscapes
- Document Processing Apparatus (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据格式的转换方法、装置、存储介质及终端,该方法包括:获取具有第一格式的数据中所有数据元素之间的层级关系;根据所有数据元素之间的层级关系,将具有第一格式的数据转换为具有第二格式的数据,其中,第二格式的数据元素之间的层级关系通过预设符号进行连接。本发明通过获取具有第一格式的数据中所有数据元素之间的层级关系,在原有数据语义不变的情况下,将原有数据元素之间的层级关系通过预设符号进行连接,形成表现形式简单易懂的具有第二格式的数据,通过将原有结构复杂的数据格式转化为结构简单的第二格式,使对应的数据文件更容易理解,提高了解析效率。
Description
技术领域
本发明涉及计算机领域,特别是涉及一种数据格式的转换方法、装置、存储介质及终端。
背景技术
异构系统间进行结构化数据传输、共享时以及系统内部进行模块间调用传递参数时主要采用扩展标记语言(XML,Extensible Markup Language)、轻量级的数据交换格式(JSON,JavaScript Object Notation)或者原生对象等方式进行。但上述的几种数据格式的文件由于其复杂的表现形式和内部层级关系,易造成的解析效率低、理解困难的情况。
发明内容
本发明提供一种数据格式的转换方法、装置、存储介质及终端,用以解决现有技术的如下问题:现有的数据格式表现形式的内部层级关系复杂,易造成的解析效率低、理解困难的问题。
为解决上述技术问题,一方面,本发明提供一种数据格式的转换方法,包括:获取具有第一格式的数据中所有数据元素之间的层级关系;根据所述所有数据元素之间的层级关系,将所述具有第一格式的数据转换为具有第二格式的数据,其中,所述第二格式的数据元素之间的层级关系通过预设符号进行连接。
进一步,所述第一格式的数据中的数据元素至少包括以下之一:对象、数组、基本类型。
进一步,所述获取具有第一格式的数据中所有数据元素之间的层级关系,包括:遍历所述具有第一格式的数据,获取具有第一格式的数据中所有数据元素之间的层级关系;其中,所述所有数据元素之间的层级关系至少包括以下之一:第一对象和第二对象之间的关系、第一对象归属于第一对象的第一数组之间的关系、第一对象和归属于第一对象的第一基本类型之间的关系、第二数组和第三数组之间的关系、第二数组和归属于第二数组的第二基本类型之间的关系。
进一步,所述将所述具有第一格式的数据转换为具有第二格式的数据,包括:在所述层级关系包括第一对象和第二对象之间的关系的情况下,在所述具有第二格式的数据中,通过对象分隔符连接所述第一对象和所述第二对象;在所述层级关系包括第一对象和归属于第一对象的第一数组之间的关系的情况下,在所述具有第二格式的数据中,通过第一连接符连接所述第一对象和所述第一数组;在所述层级关系包括第一对象和归属于第一对象的第一基本类型之间的关系的情况下,在所述具有第二格式的数据中,通过第二连接符连接所述第一对象和所述第一基本类型;在所述层级关系包括第二数组和第三数组之间的关系的情况下,在所述具有第二格式的数据中,通过数组分割符连接所述第二数组和所述第三数组;在所述层级关系包括第二数组和归属于第二数组的第二基本类型之间的关系的情况下,在所述具有第二格式的数据中,通过第三连接符连接所述第二数组和所述第二基本类型。
另一方面,本发明还提供一种数据格式的转换装置,包括:获取模块,用于获取具有第一格式的数据中所有数据元素之间的层级关系;转换模块,用于根据所述所有数据元素之间的层级关系,将所述具有第一格式的数据转换为具有第二格式的数据,其中,所述第二格式的数据元素之间的层级关系通过预设符号进行连接。
进一步,所述第一格式的数据中的数据元素至少包括以下之一:对象、数组、元素。
进一步,所述获取模块,具体用于:遍历所述具有第一格式的数据,获取具有第一格式的数据中所有数据元素之间的层级关系;其中,所述所有数据元素之间的层级关系至少包括以下之一:第一对象和第二对象之间的关系、第一对象和归属于第一对象的第一数组之间的关系、第一对象和归属于第一对象的第一基本类型之间的关系、第二数组和第三数组之间的关系、第二数组和归属于第二数组的第二基本类型之间的关系。
进一步,所述转换模块,具体用于:在所述层级关系包括第一对象和第二对象之间的关系的情况下,在所述具有第二格式的数据中,通过对象分隔符连接所述第一对象和所述第二对象;在所述层级关系包括第一对象和归属于第一对象的第一数组之间的关系的情况下,在所述具有第二格式的数据中,通过第一连接符连接所述第一对象和所述第一数组;在所述层级关系包括第一对象和归属于第一对象的第一基本类型之间的关系的情况下,在所述具有第二格式的数据中,通过第二连接符连接所述第一对象和所述第一基本类型;在所述层级关系包括第二数组和第三数组之间的关系的情况下,在所述具有第二格式的数据中,通过数组分割符连接所述第二数组和所述第三数组;在所述层级关系包括第二数组和归属于第二数组的第二基本类型之间的关系的情况下,在所述具有第二格式的数据中,通过第三连接符连接所述第二数组和所述第二基本类型。
另一方面,本发明还提供一种存储介质,存储有计算机程序,其特征在于,计算机程序被处理器执行时实现上述的数据格式的转换方法的步骤。
另一方面,本发明还提供一种终端,至少包括存储器、处理器,存储器上存储有计算机程序,处理器在执行存储器上的计算机程序时实现上述的数据格式的转换方法的步骤。
本发明通过获取具有第一格式的数据中所有数据元素之间的层级关系,在原有数据语义不变的情况下,将原有数据元素之间的层级关系通过预设符号进行连接,形成表现形式简单易懂的具有第二格式的数据,通过将原有结构复杂的数据格式转化为结构简单的第二格式,使对应的数据文件更容易理解,提高了解析效率。
附图说明
图1是本发明第一实施例中数据格式的转换方法流程图;
图2是本发明第二实施例中数据格式的转换方法流程图;
图3是本发明第三实施例中数据格式的转换装置的结构示意图;
图4是本发明第七实施例中数据规范化系统的系统示意图;
图5是本发明第七实施例中编码装置的工作流程图。
具体实施方式
为了解决现有技术的如下问题:现有的数据格式表现形式的内部层级关系复杂,易造成的解析效率低、理解困难的问题,本发明提供了一种数据格式的转换方法、装置、存储介质及终端,以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
本发明的第一实施例提供了一种数据格式的转换方法,其流程图如图1所示,主要包括步骤S101和S102:
S101,获取具有第一格式的数据中所有数据元素之间的层级关系。
XML格式、JSON格式以及原生对象格式为常用的文件格式。其中,XML格式的文件传输占用带宽大、解析效率低、手写消息比较繁杂,并且受文档类型定义(DTD,Document TypeDefinition)的限制不利于扩展,获得其中的某个具体属性或节点值时需要逐层获取效率低;JSON格式的文件与XML格式的文件类似,虽然其具有良好的可读和便于快速编写的特性,但在获得其中的某个具体属性或节点值时需要逐层获取使得解析效率低;原生对象格式的文件无法垮语言、跨平台,在获得其中的某个具体属性或节点值时需要逐层获取使得解析效率低,且通常包括一些非文本信息,如二进制编码等形式,不易于进行解析。
因此,为了解决使用上述格式的文件存在的问题,在本实施例中,需要将原有格式的数据转换为一种通用的,结构简单的数据格式。在进行转换时,首先需要获得具有第一格式的数据中所有数据元素之间的层级关系,其中,第一格式即为XML格式、JSON格式、原生对象格式中的一种或几种,也可以为其他常用的数据格式。数据格式的转换,实际上是通过与当前格式不同的表现形式来表现数据元素之间的层级关系,而对于数据语义来说来说是不变化的。
具体地,数据元素可以为对象、数组、基本类型中的任意一种或几种,或根据第一格式的具体格式,确定数据元素的具体内容,如第一格式为XML格式时,数据元素中可以包括XML节点、XML数组等,第一格式为JSON格式时,数据元素中可以包括JSON对象、JSON数组、JSON元素等。应当了解的是,数据元素中的对象还可以称为扩展类型,具体包括如Date、Time之类的常见扩展类型,或具有清晰明确的含义、完整的表达的其他扩展类型,基本类型和扩展类型均为不需要向下拆分的对象,在获取到该数据元素时,可直接根据其表述或定义知悉其对应的基本属性内容或基本信息内容。
S102,根据所有数据元素之间的层级关系,将具有第一格式的数据转换为具有第二格式的数据,其中,第二格式的数据元素之间的层级关系通过预设符号进行连接。
由于数据格式的转换,实际上是通过与当前格式不同的表现形式来表现数据元素之间的层级关系,因此,具有第二格式的数据的数据语义应与具有第一格式的数据的数据语义相同,但是数据元素之间的层级关系表述形式不同,因此,在进行格式转换时,根据获取的具有第一格式的数据中的数据元素之间的层级关系,将具有第一格式的数据转换为具有第二格式的数据。在具有第二格式的数据中,数据元素均转换为字符串形式进行描述,数据元素之间则通过预设符号进行连接。在对具有第二格式的数据进行解析时,可通过数据元素之间的预设符号,迅速地定位数据元素之间的层级关系,进而提高解析效率,并且在定位某一元素时无需通过逐层的查找和定位即可直接定位到该元素。
应当了解的是,第二格式不属于现有格式的一种,其文本结构是以一种字符串的形式体现的,并采用一种预设符号来分隔每个数据元素。因此,第二格式也可称为泛化格式,第一格式中存在的数据元素如对象、数组、基本类型等,在泛化格式中可以被称为泛化对象、泛化数组、泛化基本类型,对于语义没有发生变化的数据元素,在数据格式转换时可直接将转换前的数据元素作为泛化数据的数据元素。具体地,关于数据元素中的数组和基本类型,在第二格式中可直接使用其原有格式中的表述方式,关于常见扩展类型,可按照国际通用习惯或当地习惯将其转换为字符串形式,关于其他扩展类型,可按照其具体含义转换为相应的字符串,能清晰完整的表述清楚其具体含义即可,具体的转换方法可以为通过预先设置的串化方法,还可以使用特定的属性对扩展类型进行标注。另外,在第一格式为原生对象时,其数据文件中可能存在二进制信息或其他非文本信息,在进行格式转换时,可将上述非文本信息通过BASE64或其它编码方式将其转换为字符串之后进行保存。
本实施例通过获取具有第一格式的数据中所有数据元素之间的层级关系,在原有数据语义不变的情况下,将原有数据元素之间的层级关系通过预设符号进行连接,形成表现形式简单易懂的具有第二格式的数据,通过将原有结构复杂的数据格式转化为结构简单的第二格式,使对应的数据文件更容易理解,提高了解析效率。
进一步地,通过本发明实施例可实现在具有第二格式的数据中,进行数据元素的快速定位,并且可以快速查找出具备某层级和某层级值符合相关条件的数据元素及相关层级关系。另外,在数据丢失不完整的情况下,只要数据元素信息是完整的即可得到该数据元素的完整层级关系,在已知数据元素的层级关系,需要进行数据元素部分属性的配置时,只需要配置该属性的值即可,进一步提升了数据的可用性。
本发明的第二实施例提供了一种数据格式的转换方法,其流程图如图2所示,主要包括步骤S201和S202:
S201,遍历具有第一格式的数据,获取具有第一格式的数据中所有类型之间的层级关系。
在进行转换时,首先需要获得具有第一格式的数据中所有数据元素之间的层级关系,其中,第一格式即为XML格式、JSON格式、原生对象格式中的一种或几种,也可以为其他常用的数据格式。在获取具有第一格式的数据中所有数据元素之间的层级关系时,可以通过遍历的方式,遍历具有第一格式的数据,按照其原格式中的形式,逐级的获得各个数据元素,如对象、数组、基本类型等,并在遍历时获取数据元素之间的层级关系。
具体地,在实际进行遍历时,可以通过第一格式的数据文件中的可获取的第一个数据元素开始遍历,直到获取完文件中最后一个数据元素的所有内容为止,并在遍历的过程中获得所有数据元素之间的层级关系。所有数据元素之间的层级关系至少包括以下的一种或几种:第一对象和第二对象之间的关系,且第一对象和第二对象为两个不同的对象;第一对象和归属于第一对象的第一数组之间的关系,若第一对象中包含多个数组,第一数组则可以为第一对象中包含的多个数组中的任意一个数组;第一对象和归属于第一对象的第一基本类型之间的关系,若第一对象中包含多个基本类型,第一基本类型则可以为第一对象中包含的多个基本类型中的任意一个基本类型;第二数组和第三数组之间的关系,第二数组和第三数组为两个不同的数组,且第二数组或第三数组可以为归属于第一对象的第一数组,也可以为与第一数组不同的其他数组;第二数组和第二基本类型之间的关系,第二基本类型可以为第二数组中的一个数据项,且第二数组可以为归属于第一对象的第一数组,也可以为与第一数组不同的其他数组。由于基本类型即为不可拆分的最小数据,因此,基本类型与基本类型之间不存在层级关系。
S202,根据所有数据元素之间的层级关系,将具有第一格式的数据转换为具有第二格式的数据,其中,第二格式的数据元素之间的层级关系通过预设符号进行连接。
由于数据格式的转换,实际上是通过与当前格式不同的表现形式来表现数据元素之间的层级关系,因此,具有第二格式的数据的数据语义应与具有第一格式的数据的数据语义相同,但是数据元素之间的层级关系表述形式不同,因此,在进行格式转换时,根据获取的具有第一格式的数据中的数据元素之间的层级关系,将具有第一格式的数据转换为具有第二格式的数据。在具有第二格式的数据中,数据元素均转换为字符串形式进行描述,数据元素之间则通过预设符号进行连接。在对具有第二格式的数据进行解析时,可通过数据元素之间的预设符号,迅速地定位数据元素之间的层级关系,进而提高解析效率,并且在定位某一数据元素时无需通过逐层的查找和定位即可直接定位到该数据元素。
进一步,根据具有第一格式的数据中所有数据元素之间的层级关系,通过不同的预设符号进行不同数据元素之间的连接,具体的连接情况如下:
在层级关系包括第一对象和第二对象之间的关系的情况下,在具有第二格式的数据中,通过对象分隔符连接第一对象和第二对象,对象分隔符可以为预先设置的一个符号如回车换行符;
在层级关系包括第一对象和归属于第一对象的第一数组之间的关系的情况下,在具有第二格式的数据中,通过第一连接符连接第一对象和第一数组,第一连接符可以为预先设置的一个符号如大于号“>”;
在层级关系包括第一对象和归属于第一对象的第一基本类型之间的关系的情况下,在具有第二格式的数据中,通过第二连接符连接第一对象和第一基本类型,第二连接符可以为预先设置的一个符号,又由于第二连接符和第一连接符的作用相同,均为表示一种包含关系,第二连接符可以设置为与第一连接符相同的符号;
在层级关系包括第二数组和第三数组之间的关系的情况下,在具有第二格式的数据中,通过数组分割符连接第二数组和第三数组,数组分割符可以为预先设置的一个符号,又由于数组分割符和对象分隔符的作用相同,均为分隔两个相同的数据元素,因此,数组分割符可以设置为与对象分隔符相同的符号;
在层级关系包括第二数组和第二基本类型之间的关系的情况下,在具有第二格式的数据中,通过第三连接符连接第二数组和第二基本类型,第三连接符用于表示数组和基本类型之间的关系,可以通过冒号“:”进行表示,符号左侧用以描述数组名称,符号右侧表示该基本类型在数组中的位置;
对于数据元素与其对应的值也可通过特定的符号进行连接,如等于“=”表示数据元素对应的值。
本实施例通过获取具有第一格式的数据中所有数据元素之间的层级关系,在原有数据语义不变的情况下,将原有数据元素之间的层级关系通过预设符号进行连接,形成表现形式简单易懂的具有第二格式的数据,通过将原有结构复杂的数据格式转化为结构简单的第二格式,使对应的数据文件更容易理解,提高了解析效率。
进一步地,通过本发明实施例可实现在具有第二格式的数据中,进行数据元素的快速定位,并且可以快速查找出具备某层级和某层级值符合相关条件的数据元素及相关层级关系。另外,在数据丢失不完整的情况下,只要数据元素信息是完整的即可得到该数据元素的完整层级关系,在已知数据元素的层级关系,需要进行数据元素部分属性的配置时,只需要配置该属性的值即可,进一步提升了数据的可用性。
本发明的第三实施例提供了一种数据格式的转换装置,其结构示意图如图3所示,主要包括:获取模块10,用于获取具有第一格式的数据中所有数据元素之间的层级关系;转换模块20,与获取模块10耦合,用于根据所有数据元素之间的层级关系,将具有第一格式的数据转换为具有第二格式的数据,其中,第二格式的数据元素之间的层级关系通过预设符号进行连接。
XML格式、JSON格式以及原生对象格式为常用的文件格式。其中,XML格式的文件传输占用带宽大、解析效率低、手写消息比较繁杂,并且受文档类型定义(DTD,Document TypeDefinition)的限制不利于扩展,获得其中的某个具体属性或节点值时需要逐层获取效率低;JSON格式的文件与XML格式的文件类似,虽然其具有良好的可读和便于快速编写的特性,但在获得其中的某个具体属性或节点值时需要逐层获取使得解析效率低;原生对象格式的文件无法垮语言、跨平台,在获得其中的某个具体属性或节点值时需要逐层获取使得解析效率低,且通常包括一些非文本信息,如二进制编码等形式,不易于进行解析。
因此,为了解决使用上述格式的文件存在的问题,在本实施例中,需要将原有格式的数据转换为一种通用的,结构简单的数据格式。在进行转换时,首先通过获取模块10获得具有第一格式的数据中所有数据元素之间的层级关系,其中,第一格式即为XML格式、JSON格式、原生对象格式中的一种或几种,也可以为其他常用的数据格式。数据格式的转换,实际上是通过与当前格式不同的表现形式来表现数据元素之间的层级关系,而对于数据语义来说是不变化的。
具体地,数据元素可以为对象、数组、基本面类型中的任意一种或几种,或根据第一格式的具体格式,确定数据元素的具体内容,如第一格式为XML格式时,数据元素中可以包括XML节点、XML数组等,第一格式为JSON格式时,数据元素中可以包括JSON对象、JSON数组、JSON元素等。应当了解的是,数据元素中的对象还可以称为扩展类型,具体包括如Date、Time之类的常见扩展类型,或具有清晰明确的含义、完整的表达的其他扩展类型,基本类型和扩展类型均为不需要向下拆分的对象,在获取到该数据元素时,可直接根据其表述或定义知悉其对应的基本属性内容或基本信息内容。
由于数据格式的转换,实际上是通过与当前格式不同的表现形式来表现数据元素之间的层级关系,因此,具有第二格式的数据的数据语义应与具有第一格式的数据的数据语义相同,但是数据元素之间的层级关系表述形式不同,因此,在进行格式转换时,转换模块20根据获取的具有第一格式的数据中的数据元素之间的层级关系,将具有第一格式的数据转换为具有第二格式的数据。在具有第二格式的数据中,数据元素均转换为字符串形式进行描述,数据元素之间则通过预设符号进行连接。在对具有第二格式的数据进行解析时,可通过数据元素之间的预设符号,迅速地定位数据元素之间的层级关系,进而提高解析效率,并且在定位某一元素时无需通过逐层的查找和定位即可直接定位到该元素。
应当了解的是,第二格式不属于现有格式的一种,其文本结构是以一种字符串的形式体现的,并采用一种预设符号来分隔每个数据元素。因此,第二格式也可称为泛化格式,第一格式中存在的数据元素如对象、数组、基本类型等,在泛化格式中可以被称为泛化对象、泛化数组、泛化基本类型,对于语义没有发生变化的数据元素,在数据格式转换时可直接将转换前的数据元素作为泛化数据的数据元素。具体地,关于数据元素中的数组和基本类型,在第二格式中可直接使用其原有格式中的表述方式,关于常见扩展类型,可按照国际通用习惯或当地习惯将其转换为字符串形式,关于其他扩展类型,可按照其具体含义转换为相应的字符串,能清晰完整的表述清楚其具体含义即可,具体的转换方法可以为通过预先设置的串化方法,还可以使用特定的属性对扩展类型进行标注。另外,在第一格式为原生对象时,其数据文件中可能存在二进制信息或其他非文本信息,在进行格式转换时,可将上述非文本信息通过BASE64或其它编码方式将其转换为字符串之后进行保存。
本实施例通过获取具有第一格式的数据中所有数据元素之间的层级关系,在原有数据语义不变的情况下,将原有数据元素之间的层级关系通过预设符号进行连接,形成表现形式简单易懂的具有第二格式的数据,通过将原有结构复杂的数据格式转化为结构简单的第二格式,使对应的数据文件更容易理解,提高了解析效率。
进一步地,通过本发明实施例可实现在具有第二格式的数据中,进行数据元素的快速定位,并且可以快速查找出具备某层级和某层级值符合相关条件的数据元素及相关层级关系。另外,在数据丢失不完整的情况下,只要数据元素信息是完整的即可得到该数据元素的完整层级关系,在已知数据元素的层级关系,需要进行数据元素部分属性的配置时,只需要配置该属性的值即可,进一步提升了数据的可用性。
本发明的第四实施例提供了一种数据格式的转换装置,主要包括:获取模块10,用于遍历具有第一格式的数据,获取具有第一格式的数据中所有类型之间的层级关系;转换模块20,与获取模块10耦合,用于根据所有数据元素之间的层级关系,将具有第一格式的数据转换为具有第二格式的数据,其中,第二格式的数据元素之间的层级关系通过预设符号进行连接。
在进行转换时,首先通过获取模块10获得具有第一格式的数据中所有数据元素之间的层级关系,其中,第一格式即为XML格式、JSON格式、原生对象格式中的一种或几种,也可以为其他常用的数据格式。获取模块10在获取具有第一格式的数据中所有数据元素之间的层级关系时,可以通过遍历的方式,遍历具有第一格式的数据,按照其原格式中的形式,逐级的获得各个数据元素,如对象、数组、基本元素等,并在遍历时获取数据元素之间的层级关系。
具体地,在获取模块10实际进行遍历时,可以通过第一格式的数据文件中的可获取的第一个数据元素开始遍历,直到获取完文件中最后一个数据元素的所有内容为止,并在遍历的过程中获得所有数据元素之间的层级关系。所有数据元素之间的层级关系至少包括以下的一种或几种:第一对象和第二对象之间的关系,且第一对象和第二对象为两个不同的对象;第一对象和归属于第一对象的第一数组之间的关系,若第一对象中包含多个数组,第一数组则可以为第一对象中包含的多个数组中的任意一个数组;第一对象和归属于第一对象的第一基本类型之间的关系,若第一对象中包含多个基本类型,第一基本类型则可以为第一对象中包含的多个基本类型中的任意一个基本类型;第二数组和第三数组之间的关系,第二数组和第三数组为两个不同的数组,且第二数组或第三数组可以为归属于第一对象的第一数组,也可以为与第一数组不同的其他数组;第二数组和第二基本类型之间的关系,第二基本类型可以为第二数组中的一个数据项,且第二数组可以为归属于第一对象的第一数组,也可以为与第一数组不同的其他数组。由于基本类型即为不可拆分的最小数据元素,因此,基本类型与基本类型之间不存在层级关系。
由于数据格式的转换,实际上是通过与当前格式不同的表现形式来表现数据元素之间的层级关系,因此,具有第二格式的数据的数据语义应与具有第一格式的数据的数据语义相同,但是数据元素之间的层级关系表述形式不同,因此,在进行格式转换时,转换模块20根据获取的具有第一格式的数据中的数据元素之间的层级关系,将具有第一格式的数据转换为具有第二格式的数据。在具有第二格式的数据中,数据元素均转换为字符串形式进行描述,数据元素之间则通过预设符号进行连接。在对具有第二格式的数据进行解析时,可通过数据元素之间的预设符号,迅速地定位数据元素之间的层级关系,进而提高解析效率,并且在定位某一数据元素时无需通过逐层的查找和定位即可直接定位到该元素。
进一步,转换模块20根据具有第一格式的数据中所有数据元素之间的层级关系时,通过不同的预设符号进行不同数据元素之间的连接,具体的连接情况如下:
在层级关系包括第一对象和第二对象之间的关系的情况下,在具有第二格式的数据中,通过对象分隔符连接第一对象和第二对象,对象分隔符可以为预先设置的一个符号如回车换行符;
在层级关系包括第一对象和归属于第一对象的第一数组之间的关系的情况下,在具有第二格式的数据中,通过第一连接符连接第一对象和第一数组,第一连接符可以为预先设置的一个符号如大于号“>”;
在层级关系包括第一对象和归属于第一对象的第一基本类型之间的关系的情况下,在具有第二格式的数据中,通过第二连接符连接第一对象和第一基本类型,第二连接符可以为预先设置的一个符号,又由于第二连接符和第一连接符的作用相同,均为表示一种包含关系,第二连接符可以设置为与第一连接符相同的符号;
在层级关系包括第二数组和第三数组之间的关系的情况下,在具有第二格式的数据中,通过数组分割符连接第二数组和第三数组,数组分割符可以为预先设置的一个符号,又由于数组分割符和对象分隔符的作用相同,均为分隔两个相同的数据元素,因此,数组分割符可以设置为与对象分隔符相同的符号;
在层级关系包括第二数组和第二基本类型之间的关系的情况下,在具有第二格式的数据中,通过第三连接符连接第二数组和第二基本类型,第三连接符用于表示数组和基本类型之间的关系,可以通过冒号“:”进行表示,符号左侧用以描述数组名称,符号右侧表示该基本类型在数组中的位置;
对于数据元素与其对应的值也可通过特定的符号进行连接,如等于“=”表示数据元素对应的值。
本实施例通过获取具有第一格式的数据中所有数据元素之间的层级关系,在原有数据语义不变的情况下,将原有数据元素之间的层级关系通过预设符号进行连接,形成表现形式简单易懂的具有第二格式的数据,通过将原有结构复杂的数据格式转化为结构简单的第二格式,使对应的数据文件更容易理解,提高了解析效率。
进一步地,通过本发明实施例可实现在具有第二格式的数据中,进行数据元素的快速定位,并且可以快速查找出具备某层级和某层级值符合相关条件的数据元素及相关层级关系。另外,在数据丢失不完整的情况下,只要数据元素信息是完整的即可得到该数据元素的完整层级关系,在已知数据元素的层级关系,需要进行数据元素部分属性的配置时,只需要配置该属性的值即可,进一步提升了数据的可用性。
本发明第五实施例提供了一种存储介质,存储有计算机程序,计算机程序被处理器执行时实现如下步骤S11和S12:
S11,获取具有第一格式的数据中所有数据元素之间的层级关系;
S12,根据所有数据元素之间的层级关系,将具有第一格式的数据转换为具有第二格式的数据,其中,第二格式的数据元素之间的层级关系通过预设符号进行连接。
在本实施例中,存储介质可以安装在具有处理器的终端中。由于在第一实施例中已经对数据格式的转换方法进行了详细说明,因此,在本实施例中不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行上述实施例记载的方法步骤。可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
本发明的第六实施例提供了一种终端,至少包括存储器、处理器,存储器上存储有计算机程序,处理器在执行存储器上的计算机程序时实现如下步骤S21和S22:
S21,获取具有第一格式的数据中所有数据元素之间的层级关系;
S22,根据所有数据元素之间的层级关系,将具有第一格式的数据转换为具有第二格式的数据,其中,第二格式的数据元素之间的层级关系通过预设符号进行连接。
在本实施例中,终端可以为用户使用的如手机、平板电脑等具有处理器的移动终端,也可以为电脑、服务器等终端。由于在第一实施例中已经对数据格式的转换方法进行了详细说明,因此,在本实施例中不再赘述。
本发明的第七实施例提供了一种数据规范化系统,该系统可以将任意格式的数据转换为泛化格式的数据,或者将泛化格式的数据转换为其他现有的格式,其系统示意图如图4所示,主要包括编码装置100和解码装置200,编码装置100用于将XML、JSON、原生对象转换为泛化格式,解码装置200用于将泛化格式转换为XML、JSON、原生对象。
由于转换格式实际上是通过与当前格式不同的表现形式来表现数据元素之间的层级关系,而对于数据语义本身来说是不变化的,因此,编码装置100和解码装置200转换的均为数据元素之间层级关系的表示形式。
具体地,编码装置100内可包括XML编码器1001、JSON编码器1002以及原生对象编码器1003,上述三个编码器转换格式的方法在本发明的第一实施例中已经进行了详细的说明,在此不再赘述。进一步地,在编码装置100中还可以添加其他数据格式的编码器,新增加的编码器转换格式的方法同样与本发明的第一实施例相同。
解码装置200的转换方法与编码装置100对应,即根据泛化格式的数据中预设符号的连接方式,确定泛化数据元素之间的关系,随后根据待转换的目标格式的层级关系的表示形式,将泛化格式转化为待转换的目标格式。并且,在泛化格式的数据中,可以随意进行扩展且各个值之间没有顺序限制,如新增数据元素,或修改数据元素之间的层级关系或数值等,在通过解码装置200解码后,得到的目标格式的数据也将根据修改后的泛化格式的数据元素之间的层级关系,以目标格式的层级关系表示方法进行表示,不会影响其逻辑,或出现错误。
应当了解的是,本实施例中描述的数据规范化系统,可以用于进行数据配置、数据映射或数据检索。数据规范化系统从第一系统中获取具有第一格式的数据,将原有数据格式通过编码装置100转换为泛化格式后,方便进行快速的数据配置和定位检索,并在得到结果后,可将处理结果转换为第一系统支持的第一格式,方便第一系统进行结果的读取。
下面结合图5对编码装置100的工作流程进行描述。
S1,获取原格式的数据;
S2,判断原格式的数据是否为XML格式的数据,若是,则通过XML编码器进行编码,并执行步骤S6,若不是,则执行步骤S3;
S3,判断原格式的数据是否为JSON格式的数据,若是,则通过JSON编码器进行编码,并执行步骤S6,若不是,则执行步骤S4;
S4,判断原格式的数据是否为原生对象格式的数据,若是,则通过原生对象编码器进行编码,并执行步骤S6,若不是,则执行步骤S5;
S5,抛弃原格式的数据;
S6,输出泛化格式的数据。
尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。
Claims (10)
1.一种数据格式的转换方法,其特征在于,包括:
获取具有第一格式的数据中所有数据元素之间的层级关系;
根据所述所有数据元素之间的层级关系,将所述具有第一格式的数据转换为具有第二格式的数据,其中,所述第二格式的数据元素之间的层级关系通过预设符号进行连接。
2.如权利要求1所述的转换方法,其特征在于,所述第一格式的数据中的数据元素至少包括以下之一:对象、数组、基本类型。
3.如权利要求2所述的转换方法,其特征在于,所述获取具有第一格式的数据中所有数据元素之间的层级关系,包括:
遍历所述具有第一格式的数据,获取具有第一格式的数据中所有数据元素之间的层级关系;
其中,所述所有数据元素之间的层级关系至少包括以下之一:第一对象和第二对象之间的关系、第一对象和归属于第一对象的第一数组之间的关系、第一对象和归属于第一对象的第一基本类型之间的关系、第二数组和第三数组之间的关系、第二数组和归属于第二数组的第二基本类型之间的关系。
4.如权利要求3所述的转换方法,其特征在于,所述将所述具有第一格式的数据转换为具有第二格式的数据,包括:
在所述层级关系包括第一对象和第二对象之间的关系的情况下,在所述具有第二格式的数据中,通过对象分隔符连接所述第一对象和所述第二对象;
在所述层级关系包括第一对象和归属于第一对象的第一数组之间的关系的情况下,在所述具有第二格式的数据中,通过第一连接符连接所述第一对象和所述第一数组;
在所述层级关系包括第一对象和归属于第一对象的第一基本类型之间的关系的情况下,在所述具有第二格式的数据中,通过第二连接符连接所述第一对象和所述第一基本类型;
在所述层级关系包括第二数组和第三数组之间的关系的情况下,在所述具有第二格式的数据中,通过数组分割符连接所述第二数组和所述第三数组;
在所述层级关系包括第二数组和归属于第二数组的第二基本类型之间的关系的情况下,在所述具有第二格式的数据中,通过第三连接符连接所述第二数组和所述第二基本类型。
5.一种数据格式的转换装置,其特征在于,包括:
获取模块,用于获取具有第一格式的数据中所有数据元素之间的层级关系;
转换模块,用于根据所述所有数据元素之间的层级关系,将所述具有第一格式的数据转换为具有第二格式的数据,其中,所述第二格式的数据元素之间的层级关系通过预设符号进行连接。
6.如权利要求5所述的转换装置,其特征在于,所述第一格式的数据中的数据元素至少包括以下之一:对象、数组、基本类型。
7.如权利要求6所述的转换装置,其特征在于,所述获取模块,具体用于:
遍历所述具有第一格式的数据,获取具有第一格式的数据中所有数据元素之间的层级关系;
其中,所述所有数据元素之间的层级关系至少包括以下之一:第一对象和第二对象之间的关系、第一对象和归属于第一对象的第一数组之间的关系、第一对象和归属于第一对象的第一基本类型之间的关系、第二数组和第三数组之间的关系、第二数组和归属于第二数组的第二基本类型之间的关系。
8.如权利要求7所述的转换装置,其特征在于,所述转换模块,具体用于:
在所述层级关系包括第一对象和第二对象之间的关系的情况下,在所述具有第二格式的数据中,通过对象分隔符连接所述第一对象和所述第二对象;
在所述层级关系包括第一对象和归属于第一对象的第一数组之间的关系的情况下,在所述具有第二格式的数据中,通过第一连接符连接所述第一对象和所述第一数组;
在所述层级关系包括第一对象和归属于第一对象的第一基本类型之间的关系的情况下,在所述具有第二格式的数据中,通过第二连接符连接所述第一对象和所述第一基本类型;
在所述层级关系包括第二数组和第三数组之间的关系的情况下,在所述具有第二格式的数据中,通过数组分割符连接所述第二数组和所述第三数组;
在所述层级关系包括第二数组和归属于第二数组的第二基本类型之间的关系的情况下,在所述具有第二格式的数据中,通过第三连接符连接所述第二数组和所述第二基本类型。
9.一种存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述数据格式的转换方法的步骤。
10.一种终端,至少包括存储器、处理器,所述存储器上存储有计算机程序,其特征在于,所述处理器在执行所述存储器上的计算机程序时实现权利要求1至4中任一项所述数据格式的转换方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810553454.XA CN108763546A (zh) | 2018-05-31 | 2018-05-31 | 一种数据格式的转换方法、装置、存储介质及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810553454.XA CN108763546A (zh) | 2018-05-31 | 2018-05-31 | 一种数据格式的转换方法、装置、存储介质及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108763546A true CN108763546A (zh) | 2018-11-06 |
Family
ID=64001679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810553454.XA Pending CN108763546A (zh) | 2018-05-31 | 2018-05-31 | 一种数据格式的转换方法、装置、存储介质及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108763546A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110941946A (zh) * | 2019-11-29 | 2020-03-31 | 西安四叶草信息技术有限公司 | 一种信息提取方法、装置、设备及存储介质 |
CN111241182A (zh) * | 2020-01-19 | 2020-06-05 | 北京奇艺世纪科技有限公司 | 数据处理方法和装置、存储介质和电子装置 |
CN111597390A (zh) * | 2020-03-17 | 2020-08-28 | 用友网络科技股份有限公司 | 一种数据格式转换框架 |
CN112671697A (zh) * | 2019-10-16 | 2021-04-16 | 比亚迪股份有限公司 | 综合监控系统的数据处理方法、装置和系统 |
CN113312881A (zh) * | 2021-05-06 | 2021-08-27 | 上海移远通信技术股份有限公司 | 频段信息转换方法及装置、电子设备和计算机存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620636A (zh) * | 2009-08-21 | 2010-01-06 | 腾讯科技(北京)有限公司 | 一种显示表格数据的方法和装置 |
CN102999608A (zh) * | 2012-11-21 | 2013-03-27 | 用友软件股份有限公司 | 大数据的树表展现系统和树表展现方法 |
CN103559322A (zh) * | 2013-11-22 | 2014-02-05 | 方正国际软件有限公司 | 文档格式转换方法 |
CN103559321A (zh) * | 2013-11-22 | 2014-02-05 | 方正国际软件有限公司 | 文档格式转换系统 |
CN104346377A (zh) * | 2013-07-31 | 2015-02-11 | 克拉玛依红有软件有限责任公司 | 一种基于唯一标识的数据集成和交换方法 |
CN105530227A (zh) * | 2014-09-30 | 2016-04-27 | 亿阳信通股份有限公司 | 一种接口数据传输方法和装置 |
CN106557454A (zh) * | 2015-09-30 | 2017-04-05 | 腾讯科技(深圳)有限公司 | 文档到表格的转换方法及转换系统 |
CN106814998A (zh) * | 2015-11-27 | 2017-06-09 | 阿里巴巴集团控股有限公司 | 表单序列化方法及装置 |
CN107291476A (zh) * | 2017-06-27 | 2017-10-24 | 北京微影时代科技有限公司 | Canvas代码生成方法、装置、电子设备及存储介质 |
-
2018
- 2018-05-31 CN CN201810553454.XA patent/CN108763546A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620636A (zh) * | 2009-08-21 | 2010-01-06 | 腾讯科技(北京)有限公司 | 一种显示表格数据的方法和装置 |
CN102999608A (zh) * | 2012-11-21 | 2013-03-27 | 用友软件股份有限公司 | 大数据的树表展现系统和树表展现方法 |
CN104346377A (zh) * | 2013-07-31 | 2015-02-11 | 克拉玛依红有软件有限责任公司 | 一种基于唯一标识的数据集成和交换方法 |
CN103559322A (zh) * | 2013-11-22 | 2014-02-05 | 方正国际软件有限公司 | 文档格式转换方法 |
CN103559321A (zh) * | 2013-11-22 | 2014-02-05 | 方正国际软件有限公司 | 文档格式转换系统 |
CN105530227A (zh) * | 2014-09-30 | 2016-04-27 | 亿阳信通股份有限公司 | 一种接口数据传输方法和装置 |
CN106557454A (zh) * | 2015-09-30 | 2017-04-05 | 腾讯科技(深圳)有限公司 | 文档到表格的转换方法及转换系统 |
CN106814998A (zh) * | 2015-11-27 | 2017-06-09 | 阿里巴巴集团控股有限公司 | 表单序列化方法及装置 |
CN107291476A (zh) * | 2017-06-27 | 2017-10-24 | 北京微影时代科技有限公司 | Canvas代码生成方法、装置、电子设备及存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112671697A (zh) * | 2019-10-16 | 2021-04-16 | 比亚迪股份有限公司 | 综合监控系统的数据处理方法、装置和系统 |
CN112671697B (zh) * | 2019-10-16 | 2022-03-18 | 比亚迪股份有限公司 | 综合监控系统的数据处理方法、装置和系统 |
CN110941946A (zh) * | 2019-11-29 | 2020-03-31 | 西安四叶草信息技术有限公司 | 一种信息提取方法、装置、设备及存储介质 |
CN111241182A (zh) * | 2020-01-19 | 2020-06-05 | 北京奇艺世纪科技有限公司 | 数据处理方法和装置、存储介质和电子装置 |
CN111597390A (zh) * | 2020-03-17 | 2020-08-28 | 用友网络科技股份有限公司 | 一种数据格式转换框架 |
CN113312881A (zh) * | 2021-05-06 | 2021-08-27 | 上海移远通信技术股份有限公司 | 频段信息转换方法及装置、电子设备和计算机存储介质 |
CN113312881B (zh) * | 2021-05-06 | 2024-04-05 | 上海移远通信技术股份有限公司 | 频段信息转换方法及装置、电子设备和计算机存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108763546A (zh) | 一种数据格式的转换方法、装置、存储介质及终端 | |
US7509574B2 (en) | Method and system for reducing delimiters | |
CN111090417B (zh) | 二进制文件解析方法、装置、设备及介质 | |
US7500184B2 (en) | Determining an acceptance status during document parsing | |
JP5377818B2 (ja) | コンパイル済みスキーマに順次アクセスする方法とシステム | |
CN104978325B (zh) | 一种网页处理方法、装置及用户终端 | |
JP5044943B2 (ja) | データ文書の高速符号化方法及びシステム | |
CN102508887A (zh) | 一种数字电视交互服务标记语言解析系统及方法 | |
JP5549177B2 (ja) | 圧縮プログラム、方法及び装置、並びに解凍プログラム、方法及び装置 | |
US7735001B2 (en) | Method and system for decoding encoded documents | |
CN113836876A (zh) | 文档处理方法、装置、电子设备和介质 | |
US20240095218A1 (en) | Customizable deliminated text compression framework | |
JP2013008395A (ja) | アクセプタンス状態の表示システム及び方法 | |
CN111190896B (zh) | 数据处理方法、装置、存储介质和计算机设备 | |
CN105793842B (zh) | 序列化消息之间的转换方法和装置 | |
CN108734149B (zh) | 一种文本数据扫描方法和装置 | |
US20060212799A1 (en) | Method and system for compiling schema | |
CN108959411A (zh) | Etl任务的处理方法、装置和设备 | |
CN114722112A (zh) | 一种可视化列表数据展示方法及其装置 | |
JP2007148751A (ja) | 構造化文書の符号化方法、符号化装置、符号化プログラム、復号装置及び符号化された構造化文書のデータ構造 | |
CN107451167A (zh) | 站内点击位的点击数据获取方法和系统 | |
CN105353948A (zh) | 一种信息处理方法和装置 | |
CN113504896B (zh) | 一种应用程序的业务数据处理方法、装置及移动终端 | |
CN103019665A (zh) | 一种单据打开方法及装置 | |
CN116668536A (zh) | 图数据库和电网业务系统间的json传输方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181106 |