CN115577032A - 一种json转sql方法、装置、终端和存储介质 - Google Patents
一种json转sql方法、装置、终端和存储介质 Download PDFInfo
- Publication number
- CN115577032A CN115577032A CN202211320943.3A CN202211320943A CN115577032A CN 115577032 A CN115577032 A CN 115577032A CN 202211320943 A CN202211320943 A CN 202211320943A CN 115577032 A CN115577032 A CN 115577032A
- Authority
- CN
- China
- Prior art keywords
- json
- sql
- data
- data file
- key
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
Abstract
本发明实施例公开了一种JSON转SQL方法、装置、终端和存储介质;该方法可以包括:接收JSON数据文件,所述JSON数据文件包括字段键与键值;对所述JSON数据文件进行格式解析,获取解析数据;对所述解析数据进行分析,得到关联关系,所述关联关系包括所述字段键、所述键值以及所述字段键与所述键值的对应关系;基于所述关联关系将所述解析数据转换为SQL文本。本发明实施例中,通过自动化实现JSON到SQL的转换,并在此过程中通过多次检验的方式,提高了对应数据类型之间的转换效率,保证生成的SQL文件的质量。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种JSON转SQL方法、装置、终端和存储介质。
背景技术
JS对象简谱(JavaScript Object Notation,JSON)是一种轻量级的数据交换格式,简洁清晰的层次结构使得JSON逐渐成了最理想的数据交换格式,广泛应用于网页开发。
通常来说,在进行网页数据分析时,需要人工分析JSON数据文件,手动编写相应的转换代码将所述JSON数据文件转换为结构化查询语言(Structured Query Language,SQL)插入语句,操作繁琐,严重影响技术人员工作效率。
发明内容
本申请实施例提供一种JSON转SQL方法、装置、终端和存储介质,用于改善现有技术中进行网页数据分析时,JSON数据文件转换为SQL过程繁琐的问题。
本申请实施例提供一种JSON转SQL方法,所述方法包括:
接收JSON数据文件,所述JSON数据文件包括字段键与键值;
对所述JSON数据文件进行格式解析,获取解析数据;
对所述解析数据进行分析,得到关联关系,所述关联关系包括所述字段键、所述键值以及所述字段键与所述键值的对应关系;
基于所述关联关系将所述解析数据转换为SQL文本,所述SQL文本包括至少一个语句,所述语句包括命令头、表名、至少一个字段键以及与所述字段键对应的键值。
本申请实施例还提供一种JSON转SQL装置,所述装置包括:
第一接收模块,用于接收JSON数据文件,所述JSON数据文件包括字段键与键值;
解析模块,用于对所述JSON数据文件进行格式解析,获取解析数据;
分析模块,用于对所述解析数据进行分析,得到关联关系,所述关联关系包括所述字段键、所述键值以及所述字段键与所述键值的对应关系;
转换模块,用于基于所述关联关系将所述解析数据转换为SQL文本,所述SQL文本包括至少一个语句,所述语句包括命令头、表名、至少一个字段键以及与所述字段键对应的键值。
在一些实施例中,所述装置还包括:
数据搜寻模块,用于根据数据请求,获取网页中的响应数据;
第一数据保存模块,用于基于所述响应数据生成JSON数据文件并保存在指定路径中;
数据读取模块,用于通过文件流方法从所述指定路径读取所述JSON数据文件。
在一些实施例中,所述装置还包括:
语句标记模块,用于遍历所述JSON数据文件的所有语句,若遍历到的语句不满足预设标准条件,将所述语句标记为第一语句;
判断模块,当所述第一语句满足预设转换条件时,将所述第一语句转换为标准库中的预设语句,否则,将所述第一语句赋空。
在一些实施例中,所述装置还包括:
标准库创建模块,用于创建所述标准库;
第二接收模块,用于接收转换数据,其中所述转换数据包括多个预设语句以及预设转换条件,所述第一预设语句与所述预设替换条件之间具有对应关系;
第二数据保存模块,用于将所述转换数据存储于所述标准库内。
在一些实施例中,所述第一分析模块包括:
分析子模块,用于基于所述解析数据得到所有语句的所述字段键与所述键值之间的总体关联关系;
判断子模块,用于当总体关联关系满足预设条件时,将总体关联关系确定为终选关联关系并输出,否则返回第一分析子模块。
在一些实施例中,所述装置还包括:
语句写入模块,用于将所述SQL文本进行写入操作,生成SQL文件;
数据入库模块,用于到对应数据库中执行所述SQL文件,进行数据入库操作。
本申请实施例提供的JSON转SQL方法中,可以在进行少量操作的情况下自动执行下列步骤:接收JSON数据文件并进行格式解析,获取解析后的数据为转换做准备,通过对解析数据进行进一步的分析,获取每一个字段键与键值之间的关联关系,通过这种关联关系能够建立完整的SQL文本中的语句,由于上述步骤均在后台自动完成,不需要人工进行数据改写,提高了JSON数据到SQL的转换效率。
进一步地,本发明实施例中,在对网页响应数据进行分析时,可通过开发工具获取网络选项中的数据请求,进一步确定响应的JSON数据;提取所述响应的JSON数据以生成JSON数据文件,将所述JSON数据文件保存于指定路径中并通过检验使其满足预设的格式;当用户需要对获取的JSON数据文件进行分析时,终端通过文件流方法从指定路径中读取所述数据文件,此时终端生成转换界面并在第一窗口展示JSON数据文件的文本内容;进一步,响应于用户对转换界面中转换控件的操作,格式解析接收的JSON数据文件;分析解析后的文件,得到整个JSON数据文件的终选关联关系;根据终选关联关系,终端可以实现SQL文本的生成,此时可以通过另一个窗口展示生成的SQL文本的文本内容;最终,根据生成的SQL文本实现数据文件从JSON到SQL的转换。
由上可知,本申请实施例通过实现JSON数据到SQL的转换过程的自动化,并在此过程中通过多次检验使输出满足预设标准条件的方式,使得所述转换方法适配于不同的数据分析场景,提高了JSON数据到SQL的转换效率,保证了转换过程的稳定性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的JSON转SQL方法的场景示意图;
图2是本申请实施例提供的JSON转SQL方法的流程示意图;
图3示出了JSON转SQL方法在一种实施方式中的数据转换界面;
图4是本申请实施例提供的JSON转SQL方法的一种具体实施方式的流程示意图;
图5示出了JSON转SQL方法在一种具体实施方式中数据获取阶段的示意图;
图6是本申请实施例提供的JSON转SQL装置的结构示意图;
图7是本申请实施例提供的电子设备的结构示意图。
具体实施方式
需要说明的是,本申请实施例的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。在本申请实施例的描述中,除非另有说明,“/”表示通过结合某些字符构成形式上的组合,例如,A/B可以表示A与B通过添加双引号以及冒号,以“A”:B的形式组合表示。另外,在本申请实施例的描述中,除非另有说明,“多个”是指两个或多于两个,“至少一个”、“一个或多个”是指一个、两个或两个以上。术语“第一”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供的JSON转SQL方法具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑,或者个人电脑(Personal Computer,PC)等设备。服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。
在一些实施例中,该标签识别装置还可以集成在多个电子设备中,比如,标签识别装置可以集成在多个服务器中,由多个服务器来实现本申请的JSON转SQL方法。
在一些实施例中,服务器也可以以终端的形式来实现。
例如,上述的电子设备可以执行如下方法:
接收JSON数据文件,所述JSON数据文件包括字段键与键值;
对所述JSON数据文件进行格式解析,获取解析数据;
对所述解析数据进行分析,得到关联关系,所述关联关系包括所述字段键、所述键值以及所述字段键与所述键值的对应关系;
基于所述关联关系将所述解析数据转换为SQL文本,所述SQL文本包括至少一个语句,所述语句包括命令头、表名、至少一个字段键以及与所述字段键对应的键值。
详情请参见图1,不妨以接收的JSON数据文件为某药品监管网站后台存储的数据为例进行说明,通常来说,所述监管网站页面中能够显示多个药品的多种参数,这些参数可以为批准文号、注册证号、生产公司等,并且网页会显示每个参数对应的值以供用户参考,可以假设每一个药品对应一个对象,并且每一个对象中可以有一个或者多个字段键/键值对,用以代表药品/批准文号、药品/生产公司对。通过开发工具获取待分析的JSON数据后,将其保存为JSON数据文件。在图1的示例中,该文件包含N个JS对象;终端读取或者接收JSON数据文件后,将其作为一个整体进行格式解析,获取解析数据,以便于后续处理;在得到解析数据后,对其进行数据分析以挖掘所有语句中可能包含的字段键与键值之间的关联关系,此时假设所有的语句均满足标准格式,同时所有的字段键都能通过唯一的关联关系将其与一个键值对应;最后根据所有获得的关联关系,可以将解析数据转换为SQL文本,其中有N条插入语句,从而完成所述JSON转SQL方法的关键步骤。
以下分别进行详细说明。需说明的是,以下实施例的序号不作为对实施例优选顺序的限定。
在本实施例中,将从终端的角度进行描述,发生在终端的主要过程为:将JSON数据文件在Node.js环境下自动转换为SQL文本。
脚本语言需要解析器才能运行,JavaScript(JS)作为脚本语言,在不同的使用环境下可以使用不同的解析器来进行处理,在一些实施例中,JS语言使用浏览器作为解析器,在另一些实施例中,JS语言可以使用Node.js作为解析器。其中,解析器作为脚本语言的运行环境,允许JS定义数据结构、进行数值运算,以及使用环境提供的内置对象和方法实现一定的功能。在一些实施例中,运行在Node.js中的JS语言可以利用环境内置的对象实现操作磁盘文件、搭建HTTP服务器等功能。
JSON是JS对象的字符串表示法,它使用文本表示JS对象的信息。在一些实施例中,JSON被用来在浏览器中表示页面中存储的数据,以便于技术人员对相关数据进行读取与分析。其中,JS对象是一个无序的、字段键/键值对的集合,一个对象以左花括号“{”开始,以右花括号“}”结束,左右花括号之间为对象中的若干字段键/键值对。其中,值表示存储的数据内容,数据格式可以是JS中的任意数据类型,例如字符串、数字、空等格式;字段键即键值对应的编号,可以是字符串格式,字段键和键值之间需要使用冒号“:”分割开,不同的字段键/键值对之间需要使用逗号“,”分隔开。
如图2所示,该JSON转SQL方法应用在终端,使用的JS语言运行环境为Node.js,该方法的具体流程可以包括如下步骤210至240:
210、接收JSON数据文件,所述JSON数据文件包括字段键与键值。
其中,JSON数据文件可以包含一个或者多个JS对象,每个JS对象中可以包含一个或者多个字段键/键值对。
接收JSON数据文件的方式具有多种,比如,可以通过无线网络接收另一终端发送的JSON数据文件,也可以通过通信介质接收JSON数据文件发送的JSON数据文件,比如,通过网线、U盘、光盘等接收客户端发送的JSON数据文件等。可以理解,由于网页数据的即时性,在更多的实施例中,终端通常直接读取保存在同一终端中用户指定路径的JSON数据文件以进行后续分析处理。
在一些实施例中,在步骤210之前,根据图3所示,本申请实施例还可以包括以下JSON数据文件获取过程:
根据数据请求,获取网页中的响应数据;
基于所述响应数据生成JSON数据文件并保存在指定路径中;
通过文件流方法从所述指定路径读取所述JSON数据文件。
其中,数据请求指用户通过浏览器在网页中执行的用以获取数据的操作,可以是输入URL、表单提交、Ajax动作等;进一步,浏览器将用户的数据请求转换为固定格式并发送给服务器;服务器对接收到的数据请求进行处理,对请求中用户需求的内容格式化为响应,并返回给浏览器;浏览器通过对接收的响应进行解析,在页面上展示响应数据。
通常来说,页面上的响应数据都经过了浏览器渲染,经过渲染后的响应数据格式并不满足直接进行数据分析操作的需求,并且一个页面中可能包括多种类型的数据,其中部分数据并不是数据分析的对象。
可选地,用户可通过开发工具根据数据请求筛选出所需的响应数据,所述开发工具可以是如图3所示的界面,其中,用户可以通过第一窗口310中的控件选择网页响应的类型,进一步选择通过第二窗口320中选择该类型中具体的某个网页响应,第三窗口330展示选中响应数据的JSON代码。由于筛选出的响应数据是JSON格式,可直接提取为JSON数据文件,用户可以选择将该JSON数据文件保存在终端的特定路径中。
进一步,JS语言出于保护安全与隐私的目的,导致无法直接通过运行环境访问本地文件,可选地,可通过文件流方法,例如fs.readFile、fs.readFileSync等,实现从指定路径读取所述JSON数据文件。
在一些实施例中,在通过文件流方法从所述指定路径读取所述JSON数据文件之后,本申请实施例还可以包括如下的JSON数据文件格式检验步骤A1~A3:
A1、遍历所述JSON数据文件的所有语句,若遍历到的语句不满足预设标准条件,将所述语句标记为第一语句。
其中,所述JSON数据文件中的语句即文件中的每一行文本内容,包括标点、字符等;预设标准条件包括判断是否有语句冗余、多个语句组成的JS对象是否满足JSON的标准格式等,所述预设标准条件由用户预先设置。其中,不同预设标准条件判断的对象有区别,例如判断是否语句冗余时,会对所有的语句逐个进行判断;判断JS对象是否满足JSON标准格式时,对多个语句组成的JS对象进行判断。
可选地,在一些实施例中,语句遍历的方式可以按照首先针对一个预设标准条件对文本内容进行遍历,在全部的文本遍历结束后再针对另一个预设标准遍历文本内容;也可以首先遍历一遍文本,JS对象描述开始以及结束的文本处生成标识,在进行第二次文本遍历时同时判断是否满足所有的预设标准条件,在每一个语句结束时判断该语句是否为语句冗余,在每一个JS对象描述结束的标识处判断该标识与上一个JS对象描述开始标识之间的文本内容是否满足JSON标准格式。
A2、若所述第一语句满足预设转换条件,将所述第一语句转换为标准库中的预设语句。
其中预设转换条件具体为:当JSON数据文件中的JS对象不满足JSON标准格式时,判断是哪一种类型的格式错误,例如缺少字符,数据格式错误等,确定第一语句满足某一种或多种类型的错误后,将其转换为预设在标准库中的正确格式的语句。
A3、若所述第一语句不满足预设转换条件,将所述第一语句赋空。
其中,赋空操作在针对语句冗余的情况时,直接将冗余的语句删除;在针对JS对象不满足JSON标准格式且不满足预设转换条件,即无法通过转换实现语句的标准化的情况时,将出错的字段键设置为“null”或者将键值设定为空类型。
可选地,在一种具体实施方式中,在步骤A1之前,本申请实施例还可以包括如下步骤:
创建所述标准库。
接收转换数据,其中所述转换数据包括多个预设语句以及预设转换条件,所述第一预设语句与所述预设替换条件之间具有对应关系。
将所述转换数据存储于所述标准库内。
在上述的实施方式中,通过对生成的JSON数据文件进行格式校验,判断所有语句是否满足预设的标准格式,对出现错误的语句进行替换或者赋空操作,降低了后续JSON转SQL方法步骤中出现错误的概率,从而提高网页分析的效率。
220、对所述JSON数据文件进行格式解析,获取解析数据。
通常情况下,基于JSON数据文件中数据格式的特殊性,并不能在Node.js环境中直接对所述JSON数据文件进行分析处理,需要首先将该文件解析为JS对象,并将完成格式解析的JSON数据文件定义为解析数据。
可以理解,在上述解析过程中,可以使用多种JSON对象方法,例如eval、newFunction、JSON.parse等方法,具体使用的JSON对象方法不应理解为对本方法的限制。
230、对所述解析数据进行分析,得到关联关系,所述关联关系包括字段键、键值以及字段键与键值之间的对应关系。
关联关系包含的三个部分:字段键、键值以及字段键与键值之间的对应关系中,字段键与键值可根据JS对象的结构进行识别,以获得它们的数据类型以及具体值。
在分析解析数据中字段键与键值之间的对应关系时,由于JS对象中字段键与键值的成对性,因此字段键理应与键值一一对应。在一些实施例中,由于网页信息中通常会包含非静态信息,例如时间信息,此时可能会造成字段键与键值的对应关系可以是一对多。须知,此处的一对多并不是指在解析数据中一个字段键后面接多个键值,这种情况会破坏JS对象的结构,而是指在多个JS对象中,不同的JS对象中可能分别存在字段键相同的字段键/键值对。
例如,JSON数据文件中包括JS对象1:
{"cluster_id":10673,
"dbname":"uqmsdbqy",
"table_name":"interface_log_detail_his",
"table_rows":26451777,
"table_size":91280}
以及JS对象2:
{"cluster_id":10673,
"dbname":"uqmsdbqy",
"table_name":"interface_log_detail",
"table_rows":5056440,
"table_size":37695}
通过对比可知,JS对象1中每一个字段键/键值对均能在JS对象2中获取对应的字段键相同的字段键/键值对,而对应的键值可能相同也可能不同,此时cluster_id、dbname等字段键与键值的对应关系即为一对多。
在一些实施例中,在对所述解析数据进行分析以获取所述字段建与键值之间的关联关系时,其具体过程可以是以下步骤B1~B3:
B1、基于所述解析数据得到所有对象的所述字段键与所述键值之间的总体关联关系;
B2、若总体关联关系满足预设条件,将总体关联关系确定为终选关联关系并输出;
B3、若总体关联关系不满足预设条件,标记并赋空出现差异的语句,返回并执行步骤:基于所述解析数据得到所有语句的所述字段键与所述键值之间的总体关联关系。
其中,总体关联关系即一个JSON数据文件中所有关联关系的总和,以文本列表的形式展示字段键、键值以及两者之间的对应关系。在进行数据分析操作以获取关联关系的过程中,可以多次重复数据分析操作以获得多个总体关联关系,具体的总体关联关系个数可以是2、3、4等,以用户的意愿或者终端的性能而定;当满足预设条件后,将总体关联关系作为终选关联关系并输出,以便于进行后续的数据转换操作,预设条件可以是判断所有的总体关联关系完全相同。
可选地,为了保证分析结果的鲁棒性,即排除可能的硬件问题、外部干扰等对数据分析产生的影响,可设置一个误差阈值,该误差阈值为一个正百分数,此时以第一次生成的总体关联关系为基准,需完成所有总体关联关系与基准之间每一个语句之间的对比,在对比时标记出现差异的语句。此时的预设条件为:当有差异的语句数除以总语句数,或者出现差异的总体关联关系数量除以总体关联关系总数的值小于误差阈值时,将基准作为输出。当总体关联关系不满足预设条件时,在基准中根据标记获取出现问题的语句,对其进行赋空操作后再次进行数据分析以得到新的总体关联关系,直到生成终选关联关系。其中,赋空操作与步骤A3中的第二种情况执行的相关操作一致。
在上述的实施方式中,通过对数据分析生成的关联关系进行检验,判断所有对象中的关联关系是否满足标准形式,对出现错误的语句进行赋空操作,提高了数据分析的鲁棒性,降低了后续组装SQL文本中插入语句时出现问题的概率,提高网页数据分析的稳定性。
240、基于所述关联关系将所述解析数据转换为SQL文本,所述SQL文本包括至少一个语句,所述语句包括命令头、表名、至少一个字段键以及与所述字段键对应的键值。
其中,SQL文本中插入语句的具体结构为:
INSERT INTO表名(字段键1,字段键2,...,字段键N)
VALUES(键值1,键值2,...,键值N);
其中,命令头可以为固定的字符串,表名是终端SQL库中已有的数据表,插入语句的字段键可以与关联关系中的字段键对应,插入语句的键值可以与关联关系中的键值对应。进一步,可以根据获得的对应关系设计SQL文本中语句的结构。
在一些实施例中,终端可以通过界面向用户展示接收的JSON数据以及转换后的SQL文本,如图4所示,其具体形式可以为:
该界面包括并列的第一窗口410与第二窗口420,以及一个转换控件430用于接收用户的指令,其中:
在终端接收JSON数据文件之后,第一窗口410展示JSON数据文件的文本内容;
响应于用户对转换控件430执行的操作,对所述JSON数据文件进行格式解析;
当终端结束根据所述关联关系将所述解析数据转化为SQL文本的操作之后,第二窗口420展示生成的SQL文本的文本内容。
可选地,用户在终端进行JSON转SQL操作时,可以预设JSON数据文件的输入路径以及SQL文本的输出路径。终端接收JSON数据文件之后,在第一窗口410通过JSON文件的输入路径,获取并展示JSON数据文件全部的文本内容或者部分文本内容;终端在结束SQL文本生成操作之后,通过SQL文本的输出路径,在第二窗口420展示JSON数据文件全部的文本内容或者部分文本内容;用户可以在第二窗口420选中某个SQL文本的语句内容,第一窗口相应的生成该语句的JSON数据文件的文本会高亮标记并跳转到该语句的所在位置,便于用户查询以及修改生成的SQL文本的语句内容。
可选地,第一窗口410与第二窗口420可以设置一个计数器用于统计对应窗口中的字符数,并预设一个阈值用于限制窗口中文本的数量,当窗口中的文本内容的字符数超过阈值时,剩余的文本内容可以不予显示。具体的字符数上限可以根据用户的意愿或者终端的性能设置,在此不做具体限定。
在一些实施例中,在终端根据所述关联关系将所述解析数据转换为SQL文本之后,所述JSON转SQL方法还可以包括以下步骤:
将所述SQL文本进行写入操作,生成SQL文件;
到对应数据库中执行所述SQL文件,进行数据入库操作。
本发明实施例中,在进行网页数据分析时,通过开发工具根据特定数据请求筛选出所需的响应数据,提取所述响应数据以生成JSON数据文件,将所述JSON数据文件保存于指定路径中并通过格式检验使其满足标准格式;当用户需要对获取的JSON数据文件进行分析时,终端通过文件流方法从指定路径中读取所述JSON数据文件,此时终端生成转换界面并在第一窗口展示JSON数据文件的文本内容;进一步,响应于用户对转换界面中转换控件的操作,格式解析接收的JSON数据文件;通过对解析后的文件进行数据分析,得到整个JSON数据文件的总体关联关系,并且对生成的总体关联关系进行进一步的检验以输出终选关联关系;根据终选关联关系,终端组装语句以生成SQL文本,当SQL文本中所有的语句组装完成后,可以通过另一个窗口展示生成的SQL文本的文本内容;最终,根据SQL文本实现JSON数据文件到SQL的转换。
由上可知,本申请实施例通过自动化从网页中提取JSON数据文件,对数据文件进行格式解析、数据分析操作,根据得到的关联关系生成SQL文本的方式,实现网页数据分析中关键的JSON转SQL过程效率的提升;此外,由于整个自动化转换过程中进行了格式检验以及关联关系检验,并通过转换界面清晰地展示转换前后的文本内容,保证了JSON转SQL过程的稳定性,提高了网页数据分析的效率。
在本实施例中,还提供了一种JSON转SQL方法的一种具体实施例,如图5所示,该JSON转SQL方法的具体流程可以包括步骤510~580:
510、通过网页开发工具获取并保存JSON数据文件;
520、对JSON数据文件进行格式校验;
530、生成转换界面,在第一窗口展示JSON数据文件的文本内容;
540、读取并对JSON数据文件进行格式解析,得到解析数据;
550、对解析数据进行分析,得到关联关系;
560、基于所述关联关系将所述解析数据转换为SQL文本;
570、在所述转换界面的第二窗口展示SQL文本的文本内容;
580、基于所述SQL文本完成数据入库操作。
在该具体实施例中,在网页开发工具中通过相关的相应类型控件筛选出所需的响应数据并生成JSON数据文件,将其保存于指定路径中;在格式检验中对满足预设条件的语句进行修改替换,赋空不满足预设条件的语句,使其满足标准格式;当用户需要对获取的JSON数据文件进行分析时,终端通过文件流方法从指定路径中读取所述JSON数据文件;此时终端生成转换界面,第一窗口展示JSON数据文件的文本内容;进一步,响应于用户对转换界面中转换控件的操作,格式解析接收的JSON数据文件;通过对解析后的JSON数据文件进行数据分析,得到整个JSON数据文件的关联关系;根据关联关系,终端将解析后的JSON数据文件转换为SQL文本;当SQL文本中所有的语句转换完成时,通过转换界面第二窗口展示生成的SQL文本的文本内容;最后,基于所述SQL文本生成SQL文件,到数据库中执行所述SQL文件完成数据入库操作。
由上可知,本申请实施例通过自动化从网页中提取JSON数据文件,对数据文件进行格式解析、数据分析操作,根据得到的关联关系生成SQL文本的方式,实现网页数据分析中关键的JSON转SQL过程的效率提升;此外,由于整个自动化转换过程中进行了格式检验,并通过转换界面清晰地展示转换前后的文本内容,保证了JSON转SQL过程的稳定性,提高了网页数据分析的效率。
为了更好地实施以上方法,本申请实施例还提供一种JSON转SQL装置,该JSON转SQL装置具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、个人电脑等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。
比如,在本实施例中,将以JSON转SQL装置具体集成在服务器为例,对本申请实施例的方法进行详细说明。
例如,如图6所示,该JSON转SQL装置600可以包括第一接收模块610、解析模块620、分析模块630以及转换模块640。
第一接收模块610,用于接收JSON数据文件,所述JSON数据文件包括字段键与键值;
解析模块620,用于对所述JSON数据文件进行格式解析,获取解析数据;
分析模块630,用于对所述解析数据进行分析,得到关联关系,所述关联关系包括所述字段键、所述键值以及所述字段键与所述键值的对应关系;
转换模块640,用于基于所述关联关系将所述解析数据转换为SQL文本,所述SQL文本包括至少一个语句,所述语句包括命令头、表名、至少一个字段键以及与所述字段键对应的键值。
在一些实施例中,所述JSON转SQL装置还包括:
数据搜寻模块,用于根据数据请求,获取网页中的响应数据;
第一数据保存模块,用于基于所述响应数据生成JSON数据文件并保存在指定路径中;
数据读取模块,用于通过文件流方法从所述指定路径读取所述JSON数据文件。
在一些实施例中,所述JSON转SQL装置还包括:
语句标记模块,用于遍历所述JSON数据文件的所有语句,若遍历到的语句不满足预设标准条件,将所述语句标记为第一语句;
判断模块,当所述第一语句满足预设转换条件时,将所述第一语句转换为标准库中的预设语句,否则,将所述第一语句赋空。
在一些实施例中,所述JSON转SQL装置还包括:
标准库创建模块,用于创建所述标准库;
第二接收模块,用于接收转换数据,其中所述转换数据包括多个预设语句以及预设转换条件,所述第一预设语句与所述预设替换条件之间具有对应关系;
第二数据保存模块,用于将所述转换数据存储于所述标准库内。
在一些实施例中,所述第一分析模块包括:
分析子模块,用于基于所述解析数据得到所有语句的所述字段键与所述键值之间的总体关联关系;
判断子模块,用于当总体关联关系满足预设条件时,将总体关联关系确定为终选关联关系并输出,否则返回第一分析子模块。
在一些实施例中,所述JSON转SQL装置还包括:
语句写入模块,用于将所述SQL文本进行写入操作,生成SQL文件;
数据入库模块,用于到对应数据库中执行所述SQL文件,进行数据入库操作。
具体实施时,以上各个模块可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个模块的具体实施可参见前面的方法实施例,在此不再赘述。
由上可知,本申请实施例通过自动化从网页中提取JSON数据文件,对数据文件进行格式解析、数据分析操作,根据得到的关联关系生成SQL文本的方式,实现网页数据分析中关键的JSON转SQL过程效率的提升;此外,由于整个自动化转换过程中进行了格式检验以及关联关系检验,并通过转换界面清晰地展示转换前后的文本内容,保证了JSON转SQL过程的稳定性,提高了网页数据分析的效率。
本申请实施例还提供一种电子设备,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、个人电脑,等等;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群,等等。
在一些实施例中,该JSON转SQL装置还可以集成在多个电子设备中,比如,JSON转SQL装置可以集成在多个服务器中,由多个服务器来实现本申请的JSON转SQL方法。
在本实施例中,将以本实施例的电子设备是电子设备为例进行详细描述,比如,如图7所示,其示出了本申请实施例所涉及的电子设备的结构示意图,具体来讲:
该电子设备可以包括一个或者一个以上处理核心的处理器701、一个或一个以上计算机可读存储介质的存储器702、电源703、输入模块704以及通信模块705等部件。本领域技术人员可以理解,图7中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器701是该电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器702内的软件程序和/或模块,以及调用存储在存储器702内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。在一些实施例中,处理器701可包括一个或多个处理核心;在一些实施例中,处理器701可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器701中。
存储器702可用于存储软件程序以及模块,处理器701通过运行存储在存储器702的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器702可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器702还可以包括存储器控制器,以提供处理器701对存储器702的访问。
电子设备还包括给各个部件供电的电源703,在一些实施例中,电源703可以通过电源管理系统与处理器701逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源703还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该电子设备还可包括输入模块704,该输入模块704可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
该电子设备还可包括通信模块705,在一些实施例中通信模块705可以包括无线模块,电子设备可以通过该通信模块705的无线模块进行短距离无线传输,从而为用户提供了无线的宽带互联网访问。比如,该通信模块705可以用于帮助用户收发电子邮件、浏览网页和访问流式媒体等。
尽管未示出,电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器701会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器702中,并由处理器701来运行存储在存储器702中的应用程序,从而实现各种功能,如下:
接收JSON数据文件,所述JSON数据文件包括字段键与键值;
对所述JSON数据文件进行格式解析,获取解析数据;
对所述解析数据进行分析,得到关联关系,所述关联关系包括所述字段键、所述键值以及所述字段键与所述键值的对应关系;
基于所述关联关系将所述解析数据转换为SQL文本,所述SQL文本包括至少一个语句,所述语句包括命令头、表名、至少一个字段键以及与所述字段键对应的键值。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的任一种JSON转SQL方法中的步骤。例如,该指令可以执行如下步骤:
接收JSON数据文件,所述JSON数据文件包括字段键与键值;
对所述JSON数据文件进行格式解析,获取解析数据;
对所述解析数据进行分析,得到关联关系,所述关联关系包括所述字段键、所述键值以及所述字段键与所述键值的对应关系;
基于所述关联关系将所述解析数据转换为SQL文本,所述SQL文本包括至少一个语句,所述语句包括命令头、表名、至少一个字段键以及与所述字段键对应的键值。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中提供的各种可选实现方式中提供的方法。
由于该存储介质中所存储的指令,可以执行本申请实施例所提供的任一种JSON转SQL方法中的步骤,因此,可以实现本申请实施例所提供的任一种JSON转SQL方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种JSON转SQL方法、装置、电子设备和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种JSON转SQL方法,其特征在于,包括:
接收JSON数据文件,所述JSON数据文件包括字段键与键值;
对所述JSON数据文件进行格式解析,获取解析数据;
对所述解析数据进行分析,得到关联关系,所述关联关系包括所述字段键、所述键值以及所述字段键与所述键值的对应关系;
基于所述关联关系将所述解析数据转换为SQL文本,所述SQL文本包括至少一个语句,所述语句包括命令头、表名、至少一个字段键以及与所述字段键对应的键值。
2.如权利要求1所述的JSON转SQL方法,其特征在于,所述接收JSON数据文件之前,还包括:
根据数据请求,获取网页中的响应数据;
基于所述响应数据生成JSON数据文件并保存在指定路径中;
通过文件流方法从所述指定路径读取所述JSON数据文件。
3.如权利要求2所述的JSON转SQL方法,其特征在于,所述通过文件流方法从所述指定路径读取所述JSON数据文件之后,包括:
遍历所述JSON数据文件的所有语句,若遍历到的语句不满足预设标准条件,将所述语句标记为第一语句;
若所述第一语句满足预设转换条件,将所述第一语句转换为标准库中的预设语句;
若所述第一语句不满足预设转换条件,将所述第一语句赋空。
4.如权利要求3所述的JSON转SQL方法,其特征在于,所述遍历所述JSON数据文件的所有语句,若遍历到的语句不满足预设标准条件,将所述语句标记为第一语句之前,包括:
创建所述标准库;
接收转换数据,其中所述转换数据包括多个预设语句以及预设转换条件,所述第一预设语句与所述预设替换条件之间具有对应关系;
将所述转换数据存储于所述标准库内。
5.如权利要求1所述的JSON转SQL方法,其特征在于,所述对所述解析数据进行分析,得到所述字段键与所述键值之间的关联关系时,所述分析过程可以包括:
基于所述解析数据得到所有语句的所述字段键与所述键值之间的总体关联关系;
若总体关联关系满足预设条件,将总体关联关系确定为终选关联关系并输出;
若总体关联关系不满足预设条件,标记并赋空出现差异的语句,返回并执行步骤:基于所述解析数据得到所有语句的所述字段键与所述键值之间的总体关联关系。
6.如权利要求1所述的JSON转SQL方法,其特征在于,所述接收JSON数据文件之后,包括:
展示第一窗口,所述第一窗口包括JSON数据文件文本内容;
所述对所述JSON数据文件进行格式解析,包括:
响应于用户对转换控件执行的操作,对所述JSON数据文件进行格式解析;
所述基于所述关联关系将所述解析数据转化为SQL文本之后,包括:
展示第二窗口,所述第二窗口包括所述SQL文本的文本内容。
7.如权利要求1~6任一所述的JSON转SQL方法,其特征在于,所述根据所述关联关系将所述解析数据转换为SQL文本之后,还包括:
将所述SQL文本进行写入操作,生成SQL文件;
到对应数据库中执行所述SQL文件,进行数据入库操作。
8.一种JSON转SQL装置,其特征在于,包括:
第一接收模块,用于接收JSON数据文件,所述JSON数据文件包括字段键与键值;
解析模块,用于对所述JSON数据文件进行格式解析,获取解析数据;
第一分析模块,用于对所述解析数据进行分析,得到所述字段键与所述键值之间的关联关系;
转换模块,用于基于所述关联关系将所述解析数据转换为SQL文本,所述SQL文本包括至少一个语句,所述语句包括命令头、表名、至少一个字段键以及与所述字段键对应的键值。
9.一种终端,其特征在于,包括处理器和存储器,所述存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行如权利要求1~7任一项所述的JSON转SQL方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1~7任一项所述的JSON转SQL方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211320943.3A CN115577032A (zh) | 2022-10-26 | 2022-10-26 | 一种json转sql方法、装置、终端和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211320943.3A CN115577032A (zh) | 2022-10-26 | 2022-10-26 | 一种json转sql方法、装置、终端和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115577032A true CN115577032A (zh) | 2023-01-06 |
Family
ID=84586586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211320943.3A Pending CN115577032A (zh) | 2022-10-26 | 2022-10-26 | 一种json转sql方法、装置、终端和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115577032A (zh) |
-
2022
- 2022-10-26 CN CN202211320943.3A patent/CN115577032A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7240279B1 (en) | XML patterns language | |
CN105786998B (zh) | 数据库中间件系统及利用其处理数据的方法 | |
KR101999409B1 (ko) | 예시에 의한 데이터 포매팅 기법 | |
US8006180B2 (en) | Spell checking in network browser based applications | |
US8489623B2 (en) | Creating data in a data store using a dynamic ontology | |
CN110688307B (zh) | JavaScript代码检测方法、装置、设备和存储介质 | |
CA2684822A1 (en) | Data transformation based on a technical design document | |
CN112015430A (zh) | JavaScript代码翻译方法、装置、计算机设备及存储介质 | |
US10922614B2 (en) | Converting procedural text to an actionable knowledge form | |
CN111176996A (zh) | 测试用例生成方法、装置、计算机设备及存储介质 | |
JP2022031625A (ja) | 情報をプッシュするための方法および装置、電子機器、記憶媒体並びにコンピュータプログラム | |
KR20190095099A (ko) | 거래 시스템 에러 검출 방법, 장치, 저장 매체 및 컴퓨터 장치 | |
CN111782117B (zh) | 界面的展示方法和装置、存储介质、电子装置 | |
CN112395843A (zh) | 一种基于php代码的业务处理方法、装置及设备和介质 | |
CN116483850A (zh) | 数据处理方法、装置、设备以及介质 | |
CN114091383A (zh) | 测试序列生成方法、装置、系统及相关设备 | |
CN116088846A (zh) | 一种持续集成代码格式的处理方法、相关装置及设备 | |
CN113761879B (zh) | 报文格式校验方法、装置以及存储介质 | |
US9104573B1 (en) | Providing relevant diagnostic information using ontology rules | |
US10956659B1 (en) | System for generating templates from webpages | |
CN112540925A (zh) | 新特性兼容性检测系统及方法、电子设备及可读存储介质 | |
WO2023007791A1 (ja) | プログラムコード自動生成システム | |
CN116166533A (zh) | 接口测试方法、装置、终端设备以及存储介质 | |
CN115098061A (zh) | 软件开发文档优化方法、装置、计算机设备及存储介质 | |
CN115577032A (zh) | 一种json转sql方法、装置、终端和存储介质 |
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 |