一种进行数据格式转换的方法及装置

文档序号:1296855 发布日期:2020-08-07 浏览:17次 >En<

阅读说明:本技术 一种进行数据格式转换的方法及装置 (Method and device for data format conversion ) 是由 李培 张思文 刘晓钟 苗辉 于 2019-01-31 设计创作,主要内容包括:本发明公开了一种进行数据格式转换的方法及装置,此方法包括:构建至少一个字典,所述字典包括映射对和/或配置项,所述映射对包括显示名称和代码名称;所述配置项包括当前表格或者其它表格中一行的信息对应的JSON数据中与此行对应的元素的信息;构建二维表格;设置所述二维表格中每列的列头的映射对,设置所述二维表格的至少一列与至少一字典绑定,与字典绑定的列中的单元格的内容包括至少一所述显示名称;根据所述二维表格构建JSON数据。本发明典型适用于非技术人员构建JSON数据。(The invention discloses a method and a device for converting data formats, wherein the method comprises the following steps: constructing at least one dictionary, wherein the dictionary comprises mapping pairs and/or configuration items, and the mapping pairs comprise display names and code names; the configuration items comprise information of elements corresponding to a row in JSON data corresponding to information of the row in a current table or other tables; constructing a two-dimensional table; setting a mapping pair of column headers of each column in the two-dimensional table, setting at least one column of the two-dimensional table to be bound with at least one dictionary, wherein the content of cells in the column bound with the dictionary comprises at least one display name; and constructing JSON data according to the two-dimensional table. The invention is typically applicable to non-technical personnel constructing JSON data.)

一种进行数据格式转换的方法及装置

技术领域

本发明涉及互联网技术领域,尤其涉及一种进行数据格式转换的方法及装置。

背景技术

JS对象简谱(JavaScript Object Notation,简称JSON)是一种轻量级的数据交换格式,基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得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的解析,既不会给展示上形成困扰,也不会影响JSON生成。

三,表格设置不会丧失任何JSON的可表达性,不会出现JSON能写出来,但配置不出相应的表格的情况。表格和JSON在表达能力上是相同的。

附图说明

构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是实施例中进行数据格式转换的方法的流程图;

图2是具体实施例一中的JSON数据的示意图;

图3是具体实施例二中的JSON数据的示意图;

图4是实施例中进行数据格式转换的装置的结构图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

本案申请人发现表格二维数据很容易理解,如果能够将表格数据序列化成JSON数据,具体来说是把表格形式的数据序列化成JSON数据,将可以实现一般用户和计算机系统的数据交互通道,将大大减少JSON的使用门槛,提高用户与计算机系统之间的数据交互效率。

如图1所示,进行数据格式转换的方法包括:

步骤101,构建至少一个字典,此字典包括映射对和/或配置项,映射对包括显示名称和代码名称;配置项包括当前表格或者其它表格中一行的信息对应的JSON数据中与此行对应的元素的信息;

步骤102,构建二维表格;设置二维表格中每列的列头的映射对,设置二维表格的至少一列与至少一字典绑定,与字典绑定的列中的单元格的内容包括至少一显示名称。

步骤103,根据二维表格构建JSON数据,其中,根据二维表格构建JSON 数据包括:将二维表格中包含的显示名称根据映射对转换为代码名称设置于 JSON数据中。

其中,

具体的,将二维表格的一行的信息转换为JSON数据中的一个元素包括:将行的行头的具体值作为JSON数据中与此行对应的元素的关键字段的值;将行中除行头外的每列的信息转换为JSON数据中与此行对应的元素中的一个普通字段,将每列的列头的信息在此列头的映射对中对应的代码名称作为普通字段的代码名称,根据每列的单元格的内容构建普通字段的具体值,对于与字典绑定的列,将此列的单元格的内容中的显示名称根据此列所绑定的字典中的映射对转换为代码名称作为所述普通字段的具体值,对于未与字典绑定的列,将此列的单元格的内容作为所述普通字段的具体值。

步骤102中,构建二维表格包括:

子步骤1,确定二维表格的每列的操作类型;二维表格的一列的操作类型为单选时,设置与此列绑定的字典;此列的操作类型为单填或多填时,确定此列的数据类型;此列的操作类型为映射并且数据类型是非对象类型时,设置与此列绑定的字典;此列的操作类型为映射并且数据类型是对象类型时,设置与此列绑定的包括配置项的字典;

子步骤2,针对二维表格的每行,根据每列的操作类型设置此行和此列对应的单元格的内容。

数据类型有6种:整数(int)、实数(float)、字符串(string)、布尔变量(bool)、空(null)、对象(object)。

本方法中的字典是一个由映射对组成的数组,每个映射对必须包含2个属性,分别是普通名称(name)用于在表格上展示,代码名称(code_name) 用于作为JSON数据里面的字段值field。字典可以由用户手动输入配置,也能读取其它API自动生成。

具体实施例一

构建两个字典。

第一个字典的内容为:

{{code_name:“user1”,name:“用户1”},

{code_name:“user 2”,name:“用户2”},

{code_name:“user 3”,name:“用户3”},

{code_name:“user 4”,name:“用户4”}}

第二个字典的内容为:

{{code_name:“test1”,name:“测试1”},

{code_name:“test2”,name:“测试2”},

{code_name:“test3”,name:“测试3”},

{code_name:“test4”,name:“测试4”}}

二维表格共包括六列。

第一列的列头的映射对为:

{code_name:“ID”,name:“ID”}

第二列的列头的映射对为:

{code_name:“user”,name:“用户”}

第三列的列头的映射对为:

{code_name:“class”,name:“班级”}

第四列的列头的映射对为:

{code_name:“person”,name:“同学”}

第五列的列头的映射对为:

{code_name:“committee”,name:“组委会”}

第六列的列头的映射对为:

{code_name:“remark”,name:“备注”}

共包括六列,第一列是行标识列,列头的名称是列标识,第二列的列头名称为用户、第三列的列头名称为班级、第四列的列头名称为同学、第五列的列头的名称为组委会、第六列的列头的名称为备注。

设置第一列的操作类型为单填,数据类型为整数。

设置第二列的操作类型为单选,和第一字典绑定。

设置第三列的操作类型为多填,数据类型为字符串。

设置第四列的操作类型为多选,和第二字典绑定。

设置第五列的操作类型为映射,和第二字典绑定,数据类型为字符串。

设置第六列的操作类型为单填,数据类型为字符串。

根据每列的操作类型设置行和列对应的单元格的内容包括:

列的操作类型是单选时,从此列的操作类型绑定的字典中选择一映射对,将此映射对中的显示名称作为此单元格的内容;

列的操作类型是多选时,从此列的操作类型绑定的字典中选择一个以上映射对,将这些映射对中的显示名称作为此单元格的内容;

列的操作类型是映射并且数据类型是非对象类型时,从与此列绑定的字典中选择一个以上的映射对,将这些映射对中的显示名称作为键,将接收的用户输入的每项的具体值作为相应键的键值;

列的操作类型是单填时,接收用户填入的一项信息;

列的操作类型是多选时,接收用户填入的一项以上信息。

根据上述内容构建出二维表格。如下表所示:

将二维表格转换为JSON格式数据时,解析程序根据列的操作类型和数据类型,就能获知对应的是JSON里面的什么类型。具体的,针对上述表格的第二行的操作如下:

第1块:第二行的第一列是行头,这一行的行头的单元格的内容是1。将此内容作为JSON数据里面的关键字段的值。

第2块:第二行的第二列,这个列的列头的名称是“用户”,查找此列的列头的映射对,将此映射对里与此名称对应的代码名称(即user)作为 JSON数据中普通字段的名称,第二行的第二列的单元格的内容为“用户1”,在与此列绑定的第一字典中查找包含与此单元格的内容对应的映射对,将此映射对中与此内容对应的代码名称作为此普通字段的具体值。

第3块,第二行的第三列,这个列的列头的名称是“班级”,操作类型是多填,数据类型为字符串,查找此列的列头的映射对,将此映射对里与此名称对应的代码名称(即class)作为JSON数据中普通字段的名称,第二行的第三列的单元格的内容为“一班、二班”,将此单元格的内容解析成JSON 中的数组类型,再作为此普通字段的具体值。

第4块,第二行的第四列,这个列的列头的名称是“同学”,操作类型是多选,查找此列的列头的映射对,将此映射对里与此名称对应的代码名称 (即person)作为JSON数据中普通字段的名称,第二行的第四列的单元格的内容为“测试1、测试2、测试4”,在与此列绑定的第二字典中查找包含与此单元格的所有内容对应的映射对,将此映射对中与此内容对应的代码名称作为此普通字段的具体值。

第5块:第二行的第五列,这个列的列头的名称是“组委会”,操作类型是映射,数据类型为字符串,查找此列的列头的映射对,将此映射对里与此名称对应的代码名称(即committee)作为JSON数据中普通字段的名称,第二行的第五列的单元格的内容为{“测试1”;“2”,“测试4”;“1”},在与此列绑定的第二字典中查找包含与此单元格的内容对应的映射对,将此单元格的内容作为此普通字段的具体值。

第6块,第二行的第六列,这个列的列头的名称是“备注”,操作类型是单填,数据类型为字符串,查找此列的列头的映射对,将此映射对里与此名称对应的代码名称(即remark)作为JSON数据中普通字段的名称,第二行的第五列的单元格的内容为“备注1”,将此单元格的内容作为此普通字段的具体值。

最终构建出的JSON格式的数据如图2所示。

具体实施例二

具体实施例二构建二维表格的步骤与具体实施例一中相同,构建出与具体实施例一的二维表格后,在此二维表格中增加第七列。

设置包括配置项的字典,包括配置项的标识,例如conf,此配置项包括当前表格或者其它表格中一行的信息对应的JSON数据中与此行对应的元素的信息。

此第七列的操作类型是映射并且数据类型是对象类型,设置第七列与包括配置项的字典绑定。

在构建JSON数据时,针对第一列到第七列的处理方式与具体实施例一中的方式相同,针对第七列,将配置项在包括配置项的字典中对应的元素设置于JSON数据中。

最终构建出的JSON格式的数据如图3所示。

如图4所示,进行数据格式转换的装置包括:

字典构建模块,用于构建至少一个字典,此字典包括映射对和/或配置项,映射对包括显示名称和代码名称;配置项包括当前表格或者其它表格中一行的信息对应的JSON数据中与此行对应的元素的信息;

表格构建模块,用于构建二维表格;设置所述二维表格中每列的列头的映射对,设置所述二维表格的至少一列与至少一字典绑定,与字典绑定的列中的单元格的内容包括至少一所述显示名称;

数据构建模块,用于根据所述二维表格构建JSON数据,其中,根据所述二维表格构建JSON数据包括:将所述二维表格中包含的所述显示名称根据所述映射对转换为所述代码名称设置于所述JSON数据中。

其中,

数据构建模块包括元素构建单元,用于将所述二维表格的每个行的信息分别转换为所述JSON数据中的一个元素;具体的,使用以下方法将所述二维表格的一行的信息转换为所述JSON数据中的一个元素:将所述行的行头的具体值作为所述JSON数据中与此行对应的元素的关键字段的值;将所述行中除行头外的每列的信息转换为所述JSON数据中与此行对应的元素中的一个普通字段,将每列的列头的信息在此列头的映射对中对应的代码名称作为普通字段的代码名称,根据每列的单元格的内容构建所述普通字段的具体值,对于与字典绑定的列,将此列的单元格的内容中的显示名称根据此列所绑定的字典中的映射对转换为代码名称作为所述普通字段的具体值,对于未与字典绑定的列,将此列的单元格的内容作为所述普通字段的具体值。

表格构建模块包括类型设置单元和内容设置模块;

类型设置单元用于确定二维表格的每列的操作类型;所述二维表格的一列的操作类型为单选时,设置与所述列绑定的字典;所述列的操作类型为单填或多填时,确定所述列的数据类型;所述列的操作类型为映射并且数据类型是非对象类型时,设置与所述列绑定的字典;所述列的操作类型为映射并且数据类型是对象类型时,设置与所述列绑定的包括配置项的字典;

内容设置模块用于针对所述二维表格的每行,根据每列的操作类型设置所述行和所述列对应的单元格的内容。

内容设置模块还用于使用以下方法根据每列的操作类型设置所述行和所述列对应的单元格的内容:

列的操作类型是单选时,从与所述列绑定的字典中选择一个映射对,将所述映射对中的显示名称作为此单元格的内容;

列的操作类型是多选时,从与所述列绑定的字典中选择一个以上的映射对,将所述映射对中的显示名称作为此单元格的内容;

列的操作类型是映射并且数据类型是非对象类型时,从与所述列绑定的字典中选择一个以上的映射对,将所述映射对中的显示名称作为键,将接收的用户输入的每项的具体值作为相应键的键值;

列的操作类型是单填时,接收用户填入的一项信息;

列的操作类型是多填时,接收用户填入的一项以上信息。

本装置还包括表格修正模块,用于在所述二维表格内增加新的一列,所述列的操作类型是映射并且数据类型是对象类型,设置与所述列绑定的包括配置项的字典;所述包括配置项的字典包括配置项的标识,此配置项包括当前表格或者其它表格中一行的信息对应的JSON数据中与此行对应的元素的信息;

内容设置模块,还用于在此单元格中设置所述配置项的标识;

数据构建模块,还用于将所述二维表格中包含的所述配置项在所述包括配置项的字典中对应的元素设置于所述JSON数据中。

本发明中用字典来联通表格的展示和JSON数据的解析,兼顾用户友好和程序解析。字典中的映射对里面的name用来在表格中进行展示,对应的 code_name用来表示JSON数据。本发明中的字典是复用的,它可以和行头绑定、和列头绑定,甚至和单元格(操作类型是单选、多选、映射)绑定。本发明中对表格的列设置操作类型和数据类型,通过操作类型和数据类型的组合,使任意JSON总能和一个表格等价。换言之,这种表格形式和JSON形式是等价的,它们只是数据的表现形式不同而已。

本发明的优点包括:

一,使用表格展示数据,效果更直观,更方便理解,尤其适用于非技术人员构建JSON数据。

二,使用字典的映射联通了表格的展示和JSON的解析,既不会给展示上形成困扰,也不会影响JSON生成。

三,表格设置不会丧失任何JSON的可表达性,不会出现JSON能写出来,但配置不出相应的表格的情况。表格和JSON在表达能力上是相同的。

上面描述的内容可以单独地或者以各种方式组合起来实施,而这些变型方式都在本发明的保护范围之内。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。

以上实施例仅用以说明本发明的技术方案而非限制,仅仅参照较佳实施例对本发明进行了详细说明。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种用于教学系统的共案课件制作方法、装置和终端

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!