一种数据格式的转换方法、***、介质及电子设备
技术领域
本发明涉及数据处理领域,特别涉及一种数据格式的转换方法、***、介质及电子设备。
背景技术
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数据在传输中的安全性。
本发明还提供一种电子设备,该电子设备包括:
处理器;
存储器,该存储器上存储有计算机可读指令,该计算机可读指令被处理器执行时,实现如前所示的数据格式的转换方法。
在一示例性实施例中,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如前所示的数据格式的转换方法。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。