CN110222008A - 一种数据格式的转换方法、系统、介质及电子设备 - Google Patents

一种数据格式的转换方法、系统、介质及电子设备 Download PDF

Info

Publication number
CN110222008A
CN110222008A CN201910369896.3A CN201910369896A CN110222008A CN 110222008 A CN110222008 A CN 110222008A CN 201910369896 A CN201910369896 A CN 201910369896A CN 110222008 A CN110222008 A CN 110222008A
Authority
CN
China
Prior art keywords
data
key
value
target
type
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
Application number
CN201910369896.3A
Other languages
English (en)
Inventor
林杜波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Saiante Technology Service Co Ltd
Original Assignee
Ping An International Smart City Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An International Smart City Technology Co Ltd filed Critical Ping An International Smart City Technology Co Ltd
Priority to CN201910369896.3A priority Critical patent/CN110222008A/zh
Publication of CN110222008A publication Critical patent/CN110222008A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/116Details of conversion of file system types or formats
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database

Abstract

本发明涉及数据处理领域,揭示了一种数据格式的转换方法、系统、介质及电子设备,包括:识别目标JSON数据中的键值对,得到键的名称、值的类型以及值的字段数据;判断值的类型是否为JSON格式类型;如果否,根据键的名称以及预设的分词算法,确定与目标JSON数据对应的待生成的目标实体模型的属性名称;根据值的类型确定与目标JSON数据对应的待生成的目标实体模型的属性类型;根据值的字段数据确定与目标JSON数据对应的待生成的目标实体模型的属性值;以及根据属性名称、属性类型以及属性值生成目标实体模型,并将目标实体模型输出至目标实体文件中,以完成JSON数据到实体文件的转换。此方法下,能够避免重复的编码工作,提高了格式转换的效率。

Description

一种数据格式的转换方法、系统、介质及电子设备
技术领域
本发明涉及数据处理领域,特别涉及一种数据格式的转换方法、系统、介质及电子设备。
背景技术
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,既易于人阅读和书写,也易于机器解析和生成,可以被用来作为数据交换格式。
在移动应用开发过程中,服务器返回给客户端的数据一般都是JSON格式,在客户端使用JSON格式的数据时需要将JSON格式的数据转为实体文件。目前,将JSON格式的数据转为实体文件的普遍方法是按照服务器返回的JSON数据的关键字,手动创建实体文件,并依据SON数据文档的内容逐一为实体文件添加属性,即现有的JSON格式数据转实体文件的方法主要依靠人工来完成,格式转换效率低。
发明内容
为了解决相关技术中存在的格式转换效率低下的技术问题,本发明提供了一种数据格式的转换方法、系统、介质及电子设备。
一种数据格式的转换方法,所述方法包括:
识别目标JSON数据中的键值对,得到键的名称、值的类型以及所述值的字段数据;
判断所述值的类型是否为JSON格式类型;
如果所述值的类型不为所述JSON格式类型,根据所述键的名称确定与所述目标JSON数据对应的待生成的目标实体模型的属性名称,根据所述值的类型确定与所述目标JSON数据对应的待生成的目标实体模型的属性类型,以及根据所述值的字段数据确定与所述目标JSON数据对应的待生成的目标实体模型的属性值;
根据所述属性名称、所述属性类型以及所述属性值生成所述目标实体模型,并将所述目标实体模型输出至目标实体文件中,以完成JSON数据到实体文件的转换。
作为一种可选的实施方式,在本发明实施例第一方面中,所述方法还包括:
如果所述值的类型为所述JSON格式类型,将所述键值对所包含的值确定为新的键值对,并确定所述键值对与所述新的键值对之间存在嵌套关系,以及触发执行所述的判断所述键值对所包含的值的类型是否为JSON格式类型的操作,直至判断出新的键值对所包含的值的类型不为所述JSON格式类型时,获取所述键值对与所述新的键值对之间的嵌套关系;
根据所述嵌套关系确定与所述目标JSON数据对应的待生成的目标实体模型的类引用关系;
所述根据所述属性名称、所述属性类型以及所述属性值生成所述目标实体模型,包括:
根据所述类引用关系、所述属性名称、所述属性类型以及所述属性值生成所述目标实体模型。
作为一种可选的实施方式,在本发明实施例第一方面中,所述识别目标JSON数据中的键值对,得到键的名称、值的类型以及所述值的字段数据之前,所述方法还包括:
向服务器发送数据获取请求,所述数据获取请求用于获取目标JSON数据;
检测是否接收到所述服务器针对所述数据获取请求返回的反馈数据;
如果检测出接收到所述反馈数据,将所述反馈数据确定为目标JSON数据,并执行所述的识别目标JSON数据中的键值对,得到键的名称、值的类型以及所述值的字段数据。
作为一种可选的实施方式,在本发明实施例第一方面中,所述方法还包括:
如果检测出接收到所述反馈数据,判断所述反馈数据是否为加密数据;所述加密数据是以预设加密方式进行加密的数据;
如果所述反馈数据为所述加密数据,基于与所述预设的加密方式对应的预设解密方式,对所述反馈数据进行解密,得到解密后的所述反馈数据;
所述将所述反馈数据确定为目标JSON数据,包括:
将解密后的所述反馈数据确定为目标JSON数据。
作为一种可选的实施方式,在本发明实施例第一方面中,所述识别目标JSON数据中的键值对,得到键的名称、值的类型以及所述值的字段数据,包括:
检测是否接收到用户输入的目标名称;所述目标名称为任意键值对所包含的键的名称;
如果接收到所述目标名称,在目标JSON数据中查找是否存在与所述目标名称相匹配的键的名称;
如果存在所述键的名称,确定与所述键相对应的值,并获取所述值的类型以及所述值的字段数据。
作为一种可选的实施方式,在本发明实施例第一方面中,所述根据所述键的名称确定与所述目标JSON数据对应的待生成的目标实体模型的属性名称,包括:
根据最大正向匹配法对所述键的名称进行分词处理,得到分词处理结果;
根据所述分词处理结果确定与所述目标JSON数据对应的待生成的目标实体模型的属性名称。
作为一种可选的实施方式,在本发明实施例第一方面中,所述根据最大正向匹配法对所述键的名称进行分词处理,得到分词处理结果,包括:
步骤一、按照预设的提取方向从所述键的名称中提取N个字符作为匹配字段;N为正整数;
步骤二、在分词字典中查找是否存在与所述匹配字段相对应的字词;如果存在,则匹配成功,从所述键的名称中切分所述匹配字段,得到剩余的所述键的名称;如果不存在,则匹配不成功,触发执行步骤三;
步骤三、按照所述提取方向从所述键的名称中提取N-1个字符作为新的匹配字段;
步骤四、在所述分词字典中查找是否存在与所述新的匹配字段相对应的字词;如果存在,则匹配成功,从所述键的名称中切分所述新的匹配字段,得到剩余的所述键的名称;如果不存在,则匹配不成功,重复所述步骤三以及所述步骤四,直至所述新的匹配字段被匹配成功为止;
步骤五、重复所述步骤一至所述步骤四,直至所述键的名称中所有带匹配字段的字符被匹配成功,根据所述所有带匹配字段的字符确定分词结果。
一种数据格式的转换系统,所述系统包括:
识别模块,用于识别目标JSON数据中的键值对,得到键的名称、值的类型以及所述值的字段数据;
判断模块,用于判断所述值的类型是否为JSON格式类型;
确定模块,用于在所述判断模块判断出所述值的类型不为所述JSON格式类型时,根据所述键的名称确定与所述目标JSON数据对应的待生成的目标实体模型的属性名称,根据所述值的类型确定与所述目标JSON数据对应的待生成的目标实体模型的属性类型,以及根据所述值的字段数据确定与所述目标JSON数据对应的待生成的目标实体模型的属性值;以及根据所述属性名称、所述属性类型以及所述属性值生成所述目标实体模型;
输出模块,用于将所述目标实体模型输出至目标实体文件中,以完成JSON数据到实体文件的转换。
本发明实施例第三方面公开一种计算机可读存储介质,其存储计算机程序,其中,所述计算机程序使得计算机执行本发明实施例第一方面公开的一种数据格式的转换方法。
本发明实施例第四方面公开一种电子设备,所述电子设备包括:
处理器;
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如前所述的方法。
本发明的实施例提供的技术方案可以包括以下有益效果:
本发明所提供的一种数据格式的转换方法包括如下步骤:识别目标JSON数据中的键值对,得到键的名称、值的类型以及值的字段数据;判断值的类型是否为JSON格式类型;如果值的类型不为JSON格式类型,根据键的名称以及预设的分词算法,确定与目标JSON数据对应的待生成的目标实体模型的属性名称;根据值的类型确定与目标JSON数据对应的待生成的目标实体模型的属性类型;根据值的字段数据确定与目标JSON数据对应的待生成的目标实体模型的属性值;以及根据属性名称、属性类型以及属性值生成目标实体模型,并将该目标实体模型输出至目标实体文件中,以完成JSON数据到实体文件的转换。
此方法下,能够基于对JSON数据的识别结果自动生成与目标JSON数据对应的待生成的目标实体模型,从而完成从JSON格式数据到实体文件的转换,避免了重复的编码工作,相比起现有技术中主要依靠人工进行格式转换的方式,提高了格式转换的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种数据格式的转换方法的流程图;
图2是根据另一示例性实施例示出的一种数据格式的转换方法的流程图;
图3是根据一示例性实施例示出的一种数据格式的转换系统的框图;
图4是根据一示例性实施例示出的另一种数据格式的转换系统的框图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种数据格式的转换方法的流程图。如图1所示,此方法包括以下步骤。
步骤101,系统识别目标JSON数据中的键值对,得到键的名称、值的类型以及值的字段数据。
本示例性实施例中,目标JSON数据可以由一个或者多个键值对组成,每个键值对由键(key)和值(value)构成,因此目标JSON数据可以通过键和值的形式定义各数据类型。例如,一个目标JSON数据{“a”:5}中,可以从其中获得键的名称为a,与键a对应的值为5,即值的类型为int,值得字段数据为5。
作为一种可选的实施方式,系统识别目标JSON数据中的键值对,得到键的名称、值的类型以及值的字段数据可以包括:
检测是否接收到用户输入的目标名称;其中,该目标名称为任意键值对所包含的键的名称;
如果接收到目标名称,在目标JSON数据中查找是否存在与目标名称相匹配的键的名称;
如果存在键的名称,确定与键相对应的值,并获取值的类型以及值的字段数据。
在本示例性实施例中,在实际开发应用中,用户所要用到的实体文件内容和后台服务器返回的目标JSON数据并不完全一致,即用户可能只是需要目标JSON数据中的一部分数据而已,或者说目标JSON数据完全转化得到的实体文件并不符合用户在项目中的使用需要。因此,可以根据实际情况创建实体文件,并按照实际需求转换目标JSON数据的格式,即:系统可以在电子设备的显示界面输出窗口供用户输入想要转换的键的名称(即目标名称),并检测是否接收到目标名称,如果检测出接收到目标名称,遍历目标JSON数据,以在目标JSON数据中查找是否存在与目标名称相匹配的键的名称;如果存在该键的名称,基于键与值之间存在的对应关系,确定与该键相对应的值,并获取值的信息,其中,值的信息可以包括值的类型以及值的字段数据。可见,本示例性实施例,能够基于用户的实际情况,供用户自行选择想要转换的JSON数据内容,既提高了数据格式转换的效率,也提高了用户的体验度。
步骤102,系统判断值的类型是否为JSON格式类型,如果值的类型不为JSON格式类型,触发执行步骤103;如果值的类型为JSON格式类型,结束本流程。
本示例性实施例中,由上述实施例内容可知,目标JSON数据可以是若干个键值对的集合,其中,每个键值对中的键可以是string类型,值可以是string、double、int等基本格式类型,也可以嵌套另一个键值对,即此时值的类型为JSON格式类型。举例来说,
在上述举例中,变量testJson是一个目标JSON数据,该目标JSON数据包括两个键值对。其中,第一个键值对的键是"Name",其对应的值是"张三";第二个键值对的键是"Education",值是另一个JSON格式的数据,该JSON格式的数据包括两个键值对,分别是{"GradeSchool":"马市第一小学"}以及{"MiddleSchool":["马市第一初中","马市第一高中"]}。
作为一种可选的实施方式,如果值的类型为JSON格式类型,系统可以将键值对所包含的值确定为新的键值对,并确定键值对与新的键值对之间存在嵌套关系,以及触发执行的判断键值对所包含的值的类型是否为JSON格式类型的操作,直至判断出新的键值对所包含的值的类型不为JSON格式类型时,获取键值对与新的键值对之间的嵌套关系;根据嵌套关系确定与目标JSON数据对应的待生成的目标实体模型的类引用关系;根据类引用关系、属性名称、属性类型以及属性值生成目标实体模型。
本示例性实施例中,具体来说,系统可以将目标JSON数据中的某一键值对标记为D1,并判断值的类型是否为JSON格式类型,也就是D1的值是否为另一个键值对,如果是,将该值确定为一个键值对,并标记为D2,确定D1与D2之间的嵌套关系,并可以存储标识D1、标识D2以及D1和D2之间的嵌套关系;进一步地,再识别D2,判断该D2中的值类型是否为JSON格式类型,如果是,标记该D2中的值为D3,确定D2与D3之间的嵌套关系,并存储标识D3以及D2和D3之间的嵌套关系……直至识别到的键值对中的值不是键值对(值的类型不是JSON格式),确定对于上述某一键值对识别完毕,得到该键值对中包含至少一个嵌套关系。或者,系统还可以识别目标JSON数据中的某一键值对,并将该某一键值对默认标记为D1;判断D1中的值的数据类型是否为JSON格式,如果是,在显示界面输出弹窗,用以询问用户是否新建一个新的目标实体模型以及供用户输入该新的目标实体模型文件的名称;当检测到用户输入的名称(实体类名)D2时,根据用户输入的名称D2标记键值对,确定D1与D2之间的嵌套关系,并存储标识D1、标识D2以及D1和D2之间的嵌套关系;进一步地,再识别D2,判断D2中的值的数据类型是否为JSON格式,如果是,在显示界面输出弹窗,用以向用户询问是否新建一个新的目标实体模型以及供用户输入该新的目标实体模型的名称;当检测到用户输入的名称D3时,根据用户输入的名称D3标记该值,确定D2与D3之间的嵌套关系,并存储标识D3以及D2和D3之间的嵌套关系……直至识别到的键值对中的值的数据类型不是JSON格式,确定对于上述某一键值对识别完毕,得到该键值对中包含至少一个嵌套关系。
步骤103,系统根据键的名称确定与目标JSON数据对应的待生成的目标实体模型的属性名称,根据值的类型确定与目标JSON数据对应的待生成的目标实体模型的属性类型,以及根据值的字段数据确定与目标JSON数据对应的待生成的目标实体模型的属性值。
作为一种可选的实施方式,系统根据键的名称确定与目标JSON数据对应的待生成的目标实体模型的属性名称可以包括:根据最大正向匹配法对键的名称进行分词处理,得到分词处理结果;根据分词处理结果确定与目标JSON数据对应的待生成的目标实体模型的属性名称。进一步地,系统根据最大正向匹配法对键的名称进行分词处理,得到分词处理结果可以包括:
步骤一、按照预设的提取方向从键的名称中提取N个字符作为匹配字段;N为正整数;
步骤二、在分词字典中查找是否存在与匹配字段相对应的字词;如果存在,则匹配成功,从键的名称中切分匹配字段,得到剩余的键的名称;如果不存在,则匹配不成功,触发执行步骤三;
步骤三、按照提取方向从键的名称中提取N-1个字符作为新的匹配字段;
步骤四、在分词字典中查找是否存在与新的匹配字段相对应的字词;如果存在,则匹配成功,从键的名称中切分新的匹配字段,得到剩余的键的名称;如果不存在,则匹配不成功,重复步骤三以及步骤四,直至新的匹配字段被匹配成功为止;
步骤五、重复步骤一至步骤四,直至键的名称中所有带匹配字段的字符被匹配成功,根据所有带匹配字段的字符确定分词结果。
本示例性实施例中,系统可以根据分词字典的最大词条包含的字符个数确定N的具体数值;上述预设的提取方向可以是从左向右,也可以是从右向左,本示例性实施例不做限定。
可见,本示例性实施例中,能够通过基于分词字典的正向最大匹配算法对键的名称进行分词处理,即以字典为依据,对键的名称中包含的所有字符进行依次匹配,并根据匹配结果确定键对应的与目标JSON数据对应的待生成的目标实体模型的属性名称,这种方式既提高了确定出的属性名称的准确性,同时也实现了属性名称的自动化生成,进而提高目标JSON数据转实体文件过程的转换效率。
作为一种可选的实施方式,系统可以基于驼峰命名规则,根据分词处理结果确定与目标JSON数据对应的待生成的目标实体模型的属性名称。在驼峰命名规则下,函数名中的每一个逻辑断点都有一个大写字母来标记。例如,在驼峰命名规则下,属性名称zhihudaily应为ZhiHuDaily。
步骤104,系统根据属性名称、属性类型以及属性值生成目标实体模型,并将该目标实体模型输出至目标实体文件中,以完成JSON数据到实体文件的转换。
可见,实施图1所描述的数据格式的转换方法,能够基于对JSON数据的识别结果自动生成与目标JSON数据对应的待生成的目标实体模型,从而完成从JSON格式数据到实体文件的转换,避免了重复的编码工作,相比起现有技术中主要依靠人工进行格式转换的方式,提高了格式转换的效率;此外,能够基于用户的实际情况,供用户自行选择想要转换的JSON数据内容,既提高了数据格式转换的效率,也提高了用户的体验度;此外,既提高了确定出的属性名称的准确性,也实现了属性名称的自动化生成。
图2是根据另一示例性实施例示出的一种数据格式的转换方法的流程图。如图2所示,该数据格式的转换方法可以包括以下步骤:
步骤201,系统向服务器发送数据获取请求,该数据获取请求用于获取目标JSON数据。
步骤202,系统检测是否接收到服务器针对数据获取请求返回的反馈数据,如果检测出接收到反馈数据,触发执行步骤203;如果检测出未接收到反馈数据,结束本流程。
本发明实施例中,可选的,如果检测出接收到反馈数据,系统可以将反馈数据确定为目标JSON数据,并进一步识别目标JSON数据中的键值对,得到键的名称、值的类型以及值的字段数据。
步骤203,系统判断反馈数据是否为加密数据,如果反馈数据不为加密数据,触发执行步骤204;如果反馈数据为加密数据,触发执行步骤205。
在本示例性实施例中,加密数据是以预设加密方式进行加密的数据。出于保密性的考虑,服务器在根据上述数据获取请求返回目标JSON数据时,可以采用加密的方式对目标JSON数据加密后再发送。
其中,预设加密方式可以包括但不限于密钥算法、单向散列算法等,本示例性实施例不做限定。
步骤204,系统将反馈数据确定为目标JSON数据。
步骤205,系统基于与预设加密方式对应的预设解密方式,对反馈数据进行解密,得到解密后的反馈数据。
本示例性实施例中,以对称加密算法为例,服务器可以将反馈数据以及加密密钥通过加密算法进行处理,得到加密数据,并在接收到数据获取请求之后返回该加密数据。系统可以接收该加密数据,通过加密密钥以及相同算法的逆算法对加密数据进行解密,得到解密后的反馈数据;其中,加密密钥可以是由通信双方事先约定的。可见,本发明实施例,能够有效的保证目标JSON数据在传输中的安全性。
步骤206,系统将解密后的反馈数据确定为目标JSON数据。
其中,该数据格式的转换方法还包括步骤207~210,针对步骤207~210的描述,请参照上述实施例一中针对步骤101~104的详细描述,本发明实施例不再赘述。
可见,实施图2所描述的数据格式的转换方法,能够基于对JSON数据的识别结果自动生成与目标JSON数据对应的待生成的目标实体模型,从而完成从JSON格式数据到实体文件的转换,避免了重复的编码工作,相比起现有技术中主要依靠人工进行格式转换的方式,提高了格式转换的效率;以及,能够基于用户的实际情况,供用户自行选择想要转换的JSON数据内容,既提高了数据格式转换的效率,也提高了用户的体验度;以及,既提高了确定出的属性名称的准确性,也实现了属性名称的自动化生成;此外,能够有效的保证目标JSON数据在传输中的安全性。
以下是本发明的装置实施例。
图3是根据一示例性实施例示出的一种数据格式的转换系统的框图。如图3所示,该系统包括:
识别模块301,用于识别目标JSON数据中的键值对,得到键的名称、值的类型以及值的字段数据,并将该键的名称、值的类型以及值的字段数据提供给判断模块302。
本示例性实施例中,目标JSON数据可以由一个或者多个键值对组成,每个键值对由键(key)和值(value)构成,因此目标JSON数据可以通过键和值的形式定义各数据类型。例如,一个目标JSON数据{“a”:5}中,可以从其中获得键的名称为a,与键a对应的值为5,即值的类型为int,值得字段数据为5。
判断模块302,用于判断值的类型是否为JSON格式类型,并将判断结果提供给确定模块303。
确定模块303,用于在上述判断模块302判断出值的类型不为JSON格式类型时,根据键的名称确定与目标JSON数据对应的待生成的目标实体模型的属性名称,根据值的类型确定与目标JSON数据对应的待生成的目标实体模型的属性类型,以及根据值的字段数据确定与目标JSON数据对应的待生成的目标实体模型的属性值;以及根据属性名称、属性类型以及属性值生成目标实体模型,并提供给输出模块304。
输出模块304,用于将目标实体模型输出至目标实体文件中,以完成JSON数据到实体文件的转换。
可见,实施图3所描述的系统,能够基于对JSON数据的识别结果自动生成与目标JSON数据对应的待生成的目标实体模型,从而完成从JSON格式数据到实体文件的转换,避免了重复的编码工作,相比起现有技术中主要依靠人工进行格式转换的方式,提高了格式转换的效率;此外,能够基于用户的实际情况,供用户自行选择想要转换的JSON数据内容,既提高了数据格式转换的效率,也提高了用户的体验度;此外,既提高了确定出的属性名称的准确性,也实现了属性名称的自动化生成。
请参阅图4,图4根据一示例性实施例示出的另一种系统的框图,其中,图4所示的系统是由图3所示的系统进一步进行优化得到的。与图3所示的系统相比较,在图4所示的系统中:
上述确定模块303,还用于在上述判断模块302判断出值的类型为JSON格式类型,将键值对所包含的值确定为新的键值对,并确定键值对与新的键值对之间存在嵌套关系,以及触发执行的判断键值对所包含的值的类型是否为JSON格式类型的操作,直至判断出新的键值对所包含的值的类型不为JSON格式类型时,获取键值对与新的键值对之间的嵌套关系,并根据嵌套关系确定与目标JSON数据对应的待生成的目标实体模型的类引用关系,以及根据类引用关系、属性名称、属性类型以及属性值生成目标实体模型。
在一示例性实施例中,如图4所示,上述系统还可以包括:
发送模块305,用于向服务器发送数据获取请求,并触发检测模块306启动;其中,该数据获取请求用于获取目标JSON数据。
检测模块306,用于检测是否接收到服务器针对数据获取请求返回的反馈数据,并将检测结果提供给确定模块303。
上述确定模块303,还用于在上述检测模块306检测出接收到反馈数据之后,将反馈数据确定为目标JSON数据,并将该目标JSON数据提供给识别模块301。
上述识别模块301,具体用于在上述确定模块303将反馈数据确定为目标JSON数据之后,识别目标JSON数据中的键值对,得到键的名称、值的类型以及值的字段数据。
在另一示例性实施例中,如图4所示,上述判断模块302,还用于在上述检测模块306检测出接收到反馈数据之后,判断反馈数据是否为加密数据,并将判断结果提供给解密模块307;其中,加密数据是以预设加密方式进行加密的数据。
解密模块307,用于在上述判断模块302判断出反馈数据为加密数据时,基于与预设的加密方式对应的预设解密方式,对反馈数据进行解密,得到解密后的反馈数据,并将解密后的反馈数据提供给确定模块303。
上述确定模块303,还用于将解密后的反馈数据确定为目标JSON数据。
在又一示例性实施例中,如图4所示,上述识别模块301识别目标JSON数据中的键值对,得到键的名称、值的类型以及值的字段数据的方式具体可以为:
检测是否接收到用户输入的目标名称;目标名称为任意键值对所包含的键的名称;
如果接收到目标名称,在目标JSON数据中查找是否存在与目标名称相匹配的键的名称;
如果存在键的名称,确定与键相对应的值,并获取值的类型以及值的字段数据。
在又一示例性实施例中,如图4所示,上述确定模块303根据键的名称确定与目标JSON数据对应的待生成的目标实体模型的属性名称的方式具体可以为:
根据最大正向匹配法对键的名称进行分词处理,得到分词处理结果;
根据分词处理结果确定与目标JSON数据对应的待生成的目标实体模型的属性名称。
其中,上述确定模块303根据最大正向匹配法对键的名称进行分词处理,得到分词处理结果的方式具体可以为:
步骤一、按照预设的提取方向从键的名称中提取N个字符作为匹配字段;N为正整数;
步骤二、在分词字典中查找是否存在与匹配字段相对应的字词;如果存在,则匹配成功,从键的名称中切分匹配字段,得到剩余的键的名称;如果不存在,则匹配不成功,触发执行步骤三;
步骤三、按照提取方向从键的名称中提取N-1个字符作为新的匹配字段;
步骤四、在分词字典中查找是否存在与新的匹配字段相对应的字词;如果存在,则匹配成功,从键的名称中切分新的匹配字段,得到剩余的键的名称;如果不存在,则匹配不成功,重复步骤三以及步骤四,直至新的匹配字段被匹配成功为止;
步骤五、重复步骤一至步骤四,直至键的名称中所有带匹配字段的字符被匹配成功,根据所有带匹配字段的字符确定分词结果。
本示例性实施例中,上述确定模块303可以根据分词字典的最大词条包含的字符个数确定N的具体数值;上述预设的提取方向可以是从左向右,也可以是从右向左,本示例性实施例不做限定。
可见,本示例性实施例中,能够通过基于分词字典的正向最大匹配算法对键的名称进行分词处理,即以字典为依据,对键的名称中包含的所有字符进行依次匹配,并根据匹配结果确定键对应的与目标JSON数据对应的待生成的目标实体模型的属性名称,这种方式既提高了确定出的属性名称的准确性,同时也实现了属性名称的自动化生成,进而提高目标JSON数据转实体文件过程的转换效率。
作为一种可选的实施方式,上述确定模块303可以基于驼峰命名规则,根据分词处理结果确定与目标JSON数据对应的待生成的目标实体模型的属性名称。在驼峰命名规则下,函数名中的每一个逻辑断点都有一个大写字母来标记。例如,在驼峰命名规则下,属性名称zhihudaily应为ZhiHuDaily。
可见,实施图4所描述的系统,能够基于对JSON数据的识别结果自动生成与目标JSON数据对应的待生成的目标实体模型,从而完成从JSON格式数据到实体文件的转换,避免了重复的编码工作,相比起现有技术中主要依靠人工进行格式转换的方式,提高了格式转换的效率;以及,能够基于用户的实际情况,供用户自行选择想要转换的JSON数据内容,既提高了数据格式转换的效率,也提高了用户的体验度;以及,既提高了确定出的属性名称的准确性,也实现了属性名称的自动化生成;此外,能够有效的保证目标JSON数据在传输中的安全性。
本发明还提供一种电子设备,该电子设备包括:
处理器;
存储器,该存储器上存储有计算机可读指令,该计算机可读指令被处理器执行时,实现如前所示的数据格式的转换方法。
在一示例性实施例中,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如前所示的数据格式的转换方法。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (10)

1.一种数据格式的转换方法,其特征在于,所述方法包括:
识别目标JSON数据中的键值对,得到键的名称、值的类型以及所述值的字段数据;
判断所述值的类型是否为JSON格式类型;
如果所述值的类型不为所述JSON格式类型,根据所述键的名称确定与所述目标JSON数据对应的待生成的目标实体模型的属性名称,根据所述值的类型确定与所述目标JSON数据对应的待生成的目标实体模型的属性类型,以及根据所述值的字段数据确定与所述目标JSON数据对应的待生成的目标实体模型的属性值;
根据所述属性名称、所述属性类型以及所述属性值生成所述目标实体模型,并将所述目标实体模型输出至目标实体文件中,以完成JSON数据到实体文件的转换。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述值的类型为所述JSON格式类型,将所述键值对所包含的值确定为新的键值对,并确定所述键值对与所述新的键值对之间存在嵌套关系,以及触发执行所述的判断所述键值对所包含的值的类型是否为JSON格式类型的操作,直至判断出新的键值对所包含的值的类型不为所述JSON格式类型时,获取所述键值对与所述新的键值对之间的嵌套关系;
根据所述嵌套关系确定与所述目标JSON数据对应的待生成的目标实体模型的类引用关系;
所述根据所述属性名称、所述属性类型以及所述属性值生成所述目标实体模型,包括:
根据所述类引用关系、所述属性名称、所述属性类型以及所述属性值生成所述目标实体模型。
3.根据权利要求1或2所述的方法,其特征在于,所述识别目标JSON数据中的键值对,得到键的名称、值的类型以及所述值的字段数据之前,所述方法还包括:
向服务器发送数据获取请求,所述数据获取请求用于获取目标JSON数据;
检测是否接收到所述服务器针对所述数据获取请求返回的反馈数据;
如果检测出接收到所述反馈数据,将所述反馈数据确定为目标JSON数据,并执行所述的识别目标JSON数据中的键值对,得到键的名称、值的类型以及所述值的字段数据。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
如果检测出接收到所述反馈数据,判断所述反馈数据是否为加密数据;所述加密数据是以预设加密方式进行加密的数据;
如果所述反馈数据为所述加密数据,基于与所述预设的加密方式对应的预设解密方式,对所述反馈数据进行解密,得到解密后的所述反馈数据;
所述将所述反馈数据确定为目标JSON数据,包括:
将解密后的所述反馈数据确定为目标JSON数据。
5.根据权利要求1所述的方法,其特征在于,所述识别目标JSON数据中的键值对,得到键的名称、值的类型以及所述值的字段数据,包括:
检测是否接收到用户输入的目标名称;所述目标名称为任意键值对所包含的键的名称;
如果接收到所述目标名称,在目标JSON数据中查找是否存在与所述目标名称相匹配的键的名称;
如果存在所述键的名称,确定与所述键相对应的值,并获取所述值的类型以及所述值的字段数据。
6.根据权利要求1所述的方法,其特征在于,所述根据所述键的名称确定与所述目标JSON数据对应的待生成的目标实体模型的属性名称,包括:
根据最大正向匹配法对所述键的名称进行分词处理,得到分词处理结果;
根据所述分词处理结果确定与所述目标JSON数据对应的待生成的目标实体模型的属性名称。
7.根据权利要求6所述的方法,其特征在于,所述根据最大正向匹配法对所述键的名称进行分词处理,得到分词处理结果,包括:
步骤一、按照预设的提取方向从所述键的名称中提取N个字符作为匹配字段;N为正整数;
步骤二、在分词字典中查找是否存在与所述匹配字段相对应的字词;如果存在,则匹配成功,从所述键的名称中切分所述匹配字段,得到剩余的所述键的名称;如果不存在,则匹配不成功,触发执行步骤三;
步骤三、按照所述提取方向从所述键的名称中提取N-1个字符作为新的匹配字段;
步骤四、在所述分词字典中查找是否存在与所述新的匹配字段相对应的字词;如果存在,则匹配成功,从所述键的名称中切分所述新的匹配字段,得到剩余的所述键的名称;如果不存在,则匹配不成功,重复所述步骤三以及所述步骤四,直至所述新的匹配字段被匹配成功为止;
步骤五、重复所述步骤一至所述步骤四,直至所述键的名称中所有带匹配字段的字符被匹配成功,根据所述所有带匹配字段的字符确定分词结果。
8.一种数据格式的转换系统,其特征在于,所述系统包括:
识别模块,用于识别目标JSON数据中的键值对,得到键的名称、值的类型以及所述值的字段数据;
判断模块,用于判断所述值的类型是否为JSON格式类型;
确定模块,用于在所述判断模块判断出所述值的类型不为所述JSON格式类型时,根据所述键的名称确定与所述目标JSON数据对应的待生成的目标实体模型的属性名称,根据所述值的类型确定与所述目标JSON数据对应的待生成的目标实体模型的属性类型,以及根据所述值的字段数据确定与所述目标JSON数据对应的待生成的目标实体模型的属性值;以及根据所述属性名称、所述属性类型以及所述属性值生成所述目标实体模型;
输出模块,用于将所述目标实体模型输出至目标实体文件中,以完成JSON数据到实体文件的转换。
9.一种计算机可读存储介质,其特征在于,其存储计算机程序,所述计算机程序使得计算机执行权利要求1~7任一项所述的数据格式的转换方法。
10.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1~7中任一项所述的方法的步骤。
CN201910369896.3A 2019-05-06 2019-05-06 一种数据格式的转换方法、系统、介质及电子设备 Pending CN110222008A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910369896.3A CN110222008A (zh) 2019-05-06 2019-05-06 一种数据格式的转换方法、系统、介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910369896.3A CN110222008A (zh) 2019-05-06 2019-05-06 一种数据格式的转换方法、系统、介质及电子设备

Publications (1)

Publication Number Publication Date
CN110222008A true CN110222008A (zh) 2019-09-10

Family

ID=67820348

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910369896.3A Pending CN110222008A (zh) 2019-05-06 2019-05-06 一种数据格式的转换方法、系统、介质及电子设备

Country Status (1)

Country Link
CN (1) CN110222008A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111680475A (zh) * 2020-04-28 2020-09-18 五八有限公司 一种数据转换方法、装置、电子设备及存储介质
CN111756688A (zh) * 2020-05-18 2020-10-09 南京认知物联网研究院有限公司 一种实现表计协议与应用解耦的方法及系统
CN112181414A (zh) * 2020-09-28 2021-01-05 广州博冠信息科技有限公司 一种数据处理的方法及装置、电子设备、存储介质
CN112328231A (zh) * 2020-10-14 2021-02-05 远江盛邦(北京)网络安全科技股份有限公司 python字典和结构体间的快速转换方法
CN112905687A (zh) * 2021-03-26 2021-06-04 深圳壹账通智能科技有限公司 数据转换方法、装置、电子设备及存储介质
CN113448923A (zh) * 2020-04-17 2021-09-28 北京新氧科技有限公司 文件生成方法、装置及终端
CN113934735A (zh) * 2021-12-15 2022-01-14 深圳市城市交通规划设计研究中心股份有限公司 处理数据的方法及装置
CN115033546A (zh) * 2022-06-27 2022-09-09 深圳市万维云数字科技有限公司 数字模型通用格式、转换方法、系统、终端及存储介质
CN115495082A (zh) * 2022-11-21 2022-12-20 北京天元特通科技有限公司 Tlv格式数据自动转换方法及相关设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150089470A1 (en) * 2013-09-20 2015-03-26 Oracle International Corporation Rule-based automatic class generation from a json message
CN106649634A (zh) * 2016-12-08 2017-05-10 武汉斗鱼网络科技有限公司 一种解析json数据的方法及装置
CN108388423A (zh) * 2018-02-26 2018-08-10 中车青岛四方机车车辆股份有限公司 一种ios数据对象转换方法及装置
CN109408569A (zh) * 2018-09-28 2019-03-01 平安科技(深圳)有限公司 Json数据转换方法、装置、计算机设备及存储介质
CN109684607A (zh) * 2017-10-19 2019-04-26 腾讯科技(深圳)有限公司 Json数据解析方法、装置、计算机设备和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150089470A1 (en) * 2013-09-20 2015-03-26 Oracle International Corporation Rule-based automatic class generation from a json message
CN106649634A (zh) * 2016-12-08 2017-05-10 武汉斗鱼网络科技有限公司 一种解析json数据的方法及装置
CN109684607A (zh) * 2017-10-19 2019-04-26 腾讯科技(深圳)有限公司 Json数据解析方法、装置、计算机设备和存储介质
CN108388423A (zh) * 2018-02-26 2018-08-10 中车青岛四方机车车辆股份有限公司 一种ios数据对象转换方法及装置
CN109408569A (zh) * 2018-09-28 2019-03-01 平安科技(深圳)有限公司 Json数据转换方法、装置、计算机设备及存储介质

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113448923B (zh) * 2020-04-17 2023-09-12 北京新氧科技有限公司 文件生成方法、装置及终端
CN113448923A (zh) * 2020-04-17 2021-09-28 北京新氧科技有限公司 文件生成方法、装置及终端
CN111680475B (zh) * 2020-04-28 2022-11-15 五八有限公司 一种数据转换方法、装置、电子设备及存储介质
CN111680475A (zh) * 2020-04-28 2020-09-18 五八有限公司 一种数据转换方法、装置、电子设备及存储介质
CN111756688A (zh) * 2020-05-18 2020-10-09 南京认知物联网研究院有限公司 一种实现表计协议与应用解耦的方法及系统
CN111756688B (zh) * 2020-05-18 2021-03-16 南京认知物联网研究院有限公司 一种实现表计协议与应用解耦的方法及系统
CN112181414A (zh) * 2020-09-28 2021-01-05 广州博冠信息科技有限公司 一种数据处理的方法及装置、电子设备、存储介质
CN112328231A (zh) * 2020-10-14 2021-02-05 远江盛邦(北京)网络安全科技股份有限公司 python字典和结构体间的快速转换方法
CN112328231B (zh) * 2020-10-14 2024-02-23 远江盛邦(北京)网络安全科技股份有限公司 python字典和结构体间的快速转换方法
CN112905687A (zh) * 2021-03-26 2021-06-04 深圳壹账通智能科技有限公司 数据转换方法、装置、电子设备及存储介质
CN113934735B (zh) * 2021-12-15 2022-05-31 深圳市城市交通规划设计研究中心股份有限公司 处理数据的方法及装置
CN113934735A (zh) * 2021-12-15 2022-01-14 深圳市城市交通规划设计研究中心股份有限公司 处理数据的方法及装置
CN115033546A (zh) * 2022-06-27 2022-09-09 深圳市万维云数字科技有限公司 数字模型通用格式、转换方法、系统、终端及存储介质
CN115495082A (zh) * 2022-11-21 2022-12-20 北京天元特通科技有限公司 Tlv格式数据自动转换方法及相关设备

Similar Documents

Publication Publication Date Title
CN110222008A (zh) 一种数据格式的转换方法、系统、介质及电子设备
CN107480163B (zh) 一种云环境下支持隐私保护的高效密文图像检索方法
EP3012754A1 (en) Searchable symmetric encryption processing system
CN104866985B (zh) 快递单号识别方法、装置及系统
CN109063509A (zh) 一种基于关键词语义排序的可搜索加密方法
CN109992978B (zh) 信息的传输方法、装置及存储介质
CN107451467A (zh) 一种弱口令核查方法和装置
WO2020177326A1 (zh) 一种支持位置保护和查询隐私的可搜索加密方法
CN111797409A (zh) 一种大数据中文文本无载体信息隐藏方法
CN109739983A (zh) 识别公安笔录人物关系的方法、装置及计算机可读介质
CN110908959A (zh) 一种支持多关键字和结果排序的动态可搜索加密方法
CN115314295B (zh) 一种基于区块链的可搜索加密技术方法
US20220004621A1 (en) Data recovery through reversal of hash values using probabilistic data structures
CN111934875B (zh) 一种支持密文模糊搜索功能的公钥加密方法和系统
CN106649690A (zh) 一种安全图像检索方法和系统、一种图像检索服务器
CN116055067B (zh) 一种弱口令检测的方法、装置、电子设备及介质
Dalai et al. Some conditional cube testers for grain-128a of reduced rounds
CN111190925A (zh) 一种面向边缘计算的多维度查询方法、系统及存储介质
Zhang et al. An adaptive speech homomorphic encryption scheme based on energy in cloud storage
Algazy et al. Evaluation of the strength and performance of a new hashing algorithm based on a block cipher
Alfawair et al. Secure Image Indexing Using Speeded Up Robust Features (SURF) Key Points and SHAKE256 Hashing
CN117390687B (zh) 敏感数据查询方法、装置、存储介质和电子设备
CN110071849B (zh) 一种安全协议实施安全性分析方法、装置、介质及设备
CN117235803B (zh) 基于数据要素的数据安全认证方法、装置和电子设备
CN115733617B (zh) 一种生物特征认证方法和系统

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210129

Address after: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.)

Applicant after: Shenzhen saiante Technology Service Co.,Ltd.

Address before: 518000 floor 1-34, Qianhai free trade building, 3048 Magang Xinghai Avenue, Qianhai Shenzhen Hong Kong cooperation zone, Nanshan District, Shenzhen City, Guangdong Province

Applicant before: Ping An International Smart City Technology Co.,Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190910