CN112882974A - 一种json数据转换方法、装置、计算机设备和存储介质 - Google Patents
一种json数据转换方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112882974A CN112882974A CN202110178460.3A CN202110178460A CN112882974A CN 112882974 A CN112882974 A CN 112882974A CN 202110178460 A CN202110178460 A CN 202110178460A CN 112882974 A CN112882974 A CN 112882974A
- Authority
- CN
- China
- Prior art keywords
- json
- data
- parameter
- value
- customized
- 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.)
- Granted
Links
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 215
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000013507 mapping Methods 0.000 claims abstract description 140
- 230000014509 gene expression Effects 0.000 claims abstract description 104
- 238000004458 analytical method Methods 0.000 claims abstract description 32
- 238000012545 processing Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 15
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 claims description 9
- 238000010801 machine learning Methods 0.000 claims description 7
- GNFTZDOKVXKIBK-UHFFFAOYSA-N 3-(2-methoxyethoxy)benzohydrazide Chemical compound COCCOC1=CC=CC(C(=O)NN)=C1 GNFTZDOKVXKIBK-UHFFFAOYSA-N 0.000 claims description 5
- 238000012549 training Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000011161 development Methods 0.000 description 6
- 238000003032 molecular docking Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008676 import Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 210000001503 joint Anatomy 0.000 description 2
- 238000000547 structure data Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000000611 regression analysis Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4009—Coupling between buses with data restructuring
- G06F13/4018—Coupling between buses with data restructuring with data-width conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
Abstract
本申请提供一种JSON数据转换方法、装置、计算机设备及存储介质,属于软件技术领域,方法包括:获取数据转换指令,其中数据转换指令携带有待转换的源JSON数据;根据数据转换指令,对预设的参数映射配置信息组装成JSON转换表达式,其中参数映射配置信息包括定制JSON参数与标准JSON参数的字段映射关系以及字段值解析规则;根据JSON转换表达式,将源JSON数据转换为目标JSON数据。本申请实施例能够针对不同格式的JSON数据实现映射转换,具有较强的通用性,能够极大地提高效率并节省人力成本。
Description
技术领域
本申请涉及软件技术领域,尤其涉及一种JSON数据转换方法、装置、计算机设备和存储介质。
背景技术
JSON(JavaScript Object Notation,JS对象简谱)是一种轻量级的数据交换格式。JSON是一个标记符的序列,这套标记符包含六个构造字符、字符串、数字和三个字面名。JSON是一个序列化的对象或数组,JSON的值可以是对象、数组、数字、字符串或者三个字面值(false、null、true)中的一个。JSON基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构、易于人阅读和编写、易于机器解析和生成,以及能够有效提升网络传输效率等诸多优点,使得JSON成为理想的数据交换语言。
大部分系统接口都是输入或输出JSON格式数据,这样不同应用系统接口之间的对接,就需要实现JSON格式数据的对接转换,而每个接口对JSON格式数据结构定义存在差异。针对不同JSON格式数据的映射转换,传统做法都是通过定制化开发代码实现,例如,每实现一次接口对接,需要通过JAVA开发代码定制化实现JSON格式映射转换,无法做到通用。然而通过定制化开发代码实现JSON格式映射转换,需要耗费大量人力成本和时间成本,存在开发效率低、开发成本高的问题。
发明内容
为了解决上述背景技术中提到的至少一个问题,本申请提供一种JSON数据转换方法、装置、计算机设备及存储介质。
第一方面,提供了一种JSON数据转换方法,所述方法包括:
获取数据转换指令,其中所述数据转换指令携带有待转换的源JSON数据;
根据所述数据转换指令,对预设的参数映射配置信息组装成JSON转换表达式,其中所述参数映射配置信息包括定制JSON参数与标准JSON参数的字段映射关系以及字段值解析规则;
根据所述JSON转换表达式,将所述源JSON数据转换为目标JSON数据。
进一步地,所述根据所述JSON转换表达式,将所述源JSON数据转换为目标JSON数据,包括:
步骤a,遍历处理所述JSON转换表达式中的key;
步骤b、针对当前遍历到的所述JSON转换表达式中的key,对所述key按照第一预设符号和第二预设符号进行拆分,得到所述key的二维数组;
步骤c、判断所述key的value是否包含变量,若包含,则对所述value按照所述第一预设符号和所述第二预设符号进行拆分,得到所述value的二维数组;
步骤d、针对遍历处理后的所述JSON转换表达式中的所述key,递归处理所述key的value的二维数组,判断所述value的二维数组是否为非空,若为非空,则执行步骤e,若为空,则执行步骤f;
步骤e,当所述value的二维数组为非空时,从所述源JSON数据中确定出对应的源key,并将所述源key的value的值确定为目标值;
步骤f,当所述value的二维数组为空时,将所述key的value的值确定为所述目标值;
步骤g,判断所述JSON转换表达式是否包含扩展指令,若包含扩展指令,则根据所述扩展指令处理所述目标值,得到最终值,若不包含所述扩展指令,则将所述目标值确定为所述最终值;
步骤h,构造所述key的二维数组对应的目标key,并将所述最终值作为所述目标key的value,返回执行步骤b,循环处理所述JSON转换表达式中的下一个key,直至构造出所有的目标key;
步骤i,根据构造出的所有所述目标key以及各所述目标key的value,生成所述目标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数据。
进一步地,所述转换模块具体用于执行如下步骤:
步骤a,遍历处理所述JSON转换表达式中的key;
步骤b、针对当前遍历到的所述JSON转换表达式中的key,对所述key按照第一预设符号和第二预设符号进行拆分,得到所述key的二维数组;
步骤c、判断所述key的value是否包含变量,若包含,则对所述value按照所述第一预设符号和所述第二预设符号进行拆分,得到所述value的二维数组;
步骤d、针对遍历处理后的所述JSON转换表达式中的所述key,递归处理所述key的value的二维数组,判断所述value的二维数组是否为非空,若为非空,则执行步骤e,若为空,则执行步骤f;
步骤e,当所述value的二维数组为非空时,从所述源JSON数据中确定出对应的源key,并将所述源key的value的值确定为目标值;
步骤f,当所述value的二维数组为空时,将所述key的value的值确定为所述目标值;
步骤g,判断所述JSON转换表达式是否包含扩展指令,若包含扩展指令,则根据所述扩展指令处理所述目标值,得到最终值,若不包含所述扩展指令,则将所述目标值确定为所述最终值;
步骤h,构造所述key的二维数组对应的目标key,并将所述最终值作为所述目标key的value,返回执行步骤b,循环处理所述JSON转换表达式中的下一个key,直至构造出所有的目标key;
步骤i,根据构造出的所有所述目标key以及各所述目标key的value,生成所述目标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转换表达式,将源JSON数据转换为目标JSON数据,由此能够针对不同格式的JSON数据实现映射转换,具有较强的通用性,能够极大地提高效率并节省人力成本。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中的JSON数据转换方法的流程示意图;
图2示出了图1所示方法中步骤103的流程示意图;
图3为一个实施例中的JSON数据转换的结果示意图;
图4为另一个实施例中的JSON数据转换方法的流程示意图;
图5为一个实施例中的参数映射配置信息的配置流程示意图;
图6为一个实施例中的参数映射配置页面的界面示意图;
图7为另一个实施例中的参数映射配置信息的配置流程示意图;
图8为一个实施例中的JSON数据转换装置的结构示意图;
图9示出了本申请提供的一种计算机设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
此外,在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
由于不同应用系统接口之间对JSON格式数据结构定义存在差异,例如参数名称不同、参数类型不同、参数个数不同、参数结构不同多种差异,不同应用系统接口的对接需要依赖于JSON格式数据的对接转换,针对不同的JSON格式数据之间的映射转换,传统做法是通过定制化开发代码实现。即每实现一次接口对接,就需要通过定制化编码实现JSON格式映射转换,这种做法需要耗费响应的时间和人力。有鉴于此,本申请提供一种JSON数据转换方法,能够针对不同格式的JSON数据实现映射转换,具有较强的通用性,能够极大地提高效率并节省人力成本。
在一个实施例中,提供了一种JSON数据转换方法,该方法以JSON数据转换装置作为执行主体,该装置可以采用软件或硬件或软硬结合的方式,如图1所示,JSON数据转换方法可以包括以下步骤:
101,获取数据转换指令,其中数据转换指令携带有待转换的源JSON数据。
具体地,可以在定制接口与标准接口之间配置JSON数据转换装置,该JSON数据转换装置可以接收来自定制接口或标准接口的数据转换指令,将数据转换指令中的待转换的源JSON数据转换为目标JSON数据。其中,源JSON数据与目标JSON数据的数据结构不同。
其中,定制接口是指发出服务请求的用户系统的接口,标准接口是指提供服务的应用系统的接口,应理解的是,定制接口的数量可以是一个或多个。
102,根据数据转换指令,对预设的参数映射配置信息组装成JSON转换表达式,其中参数映射配置信息包括定制JSON参数与标准JSON参数的字段映射关系以及字段值解析规则。
具体地,根据数据转换指令,对定制JSON参数与标准JSON参数的字段映射关系以及字段值解析规则,按照预先定义的JSON结构组装成JSON表达式,其中该组装过程包括设置缺失字段。其中,JSON转换表达式可以采用一层平铺的JSON结构数据进行定义,包括三部分:
第一部分,即转换表达式的key,对应目标JSON的key,通过“.”标识目标json的层次关系,即目标json父key.子key……,例如:userName,userAge,firstAddress.city,示例性地,转换表达式key与目标JSON key的对应关系可参照表1:
表1:转换表达式key与目标JSON的key的对应关系表
转换表达式key | 目标JSON key |
userName | userName |
userAge | userAge |
firstAddress.district | firstAddress.district |
第二部分,即转换表达式的key的value,可以是常量或是变量的一种,如果不带${},则是常量,为基本类型或复合类型;如果带${},则是变量,为原始JSON的key,同样通过“.”标识层次关系。变量例如:${name}、${address.district}。示例性地,转换表达式value变量部分与源JSON key的对应关系可参照表2:
表2:转换表达式value变量部分与源JSON key的对应关系表
第三部分为扩展指令,非必选部分,格式可以是:指令,参数1,参数2……,例如:(div,100,double)、(string)。扩展指令是用来对原json值进行加工转换处理,输出转换后的最终的值,并赋值给目标JSON。
扩展指令主要分为两类:值指令和结构指令,分别对JSON值和JSON结构转换处理。其中,值指令包括:类型转换—convert,默认值—default,空判断—isEmpty、获取扩展参数值—get、值映射—mapping、四则运算—add、sub、mul、div;结构指令包括:拆分、合并、类型升级和类型降级。其中,拆分针对字符串分隔场景,包括:split—拆分成基本类型数组、splitToObject—拆分成对象数组、splitToField—拆分成对象的不同字段;合并针对split的逆向操作,包括:join—合并基本类型数组成字符串、joinObject—合并对象数组成字符串、joinField—合并对象的字段成字符串;类型升级—upgrade(基本类型数组升级为对象数组,类型降级—downgrade(对象数组降级为基本类型数组)。
下面表格示例性地给出扩展指令的相关说明。
表3:类型转换
例如:源JSON的值为a1,那么对a1做基本类型转换处理,可得到目标JSON的值A1,即字符串转整型的结果值。
表4:默认值
例如:源JSON的值为a,对a设置默认值0,得到目标JSON的值A为0。
表5:四则运算
表6:值转换-值映射(mapping)
表7:逗号分割字符串转数组
举例:通过逗号分割字符串转数组将原值"1,2,3"转换为["1","2","3"]。
表8:基本数组转分隔符字符串
举例:通过逗号分割字符串转数组将原值["1","2","3"]转换为"1,2,3"。
表9:基本类型数组升级为对象数组
举例:通过基本类型数组升级为对象数组将原值[1,2,3]转换为[{"key":1},{"key":2},{"key":3}]。
可以理解,上述这些示例只是对扩展指令的举例,扩展指令可以定义为其他指令,本申请并不限定。
103,根据JSON转换表达式,将源JSON数据转换为目标JSON数据。
具体地,可以调用JSON转换引擎通过JSON转换表达式,将原始JSON数据,转换对应的目标JSON数据。
本实施例中,针对定制接口和标准接口之间存在的参数名称不同、参数类型不同、参数个数不同、参数结构不同多种差异,通过根据数据转换指令,对预设的参数映射配置信息组装成JSON转换表达式,并根据JSON转换表达式,将源JSON数据转换为目标JSON数据,实现了不同JSON结构数据之间的转换,能够满足标准接口对接不同定制接口的需求,具有较强的通用性,并且能够极大地提高效率以及节省人力成本。
在一个实施例中,如图2所示,上述步骤103根据JSON转换表达式,将源JSON数据转换为目标JSON数据,可以包括步骤a至步骤i:
步骤a,遍历处理JSON转换表达式中的key。
步骤b、针对当前遍历到的JSON转换表达式中的key,对key按照第一预设符号和第二预设符号进行拆分,得到key的二维数组。
其中,第一预设符号和第二预设符号可以根据实际需要进行设定,例如可以分别设置为“[]”和“.”。
其中,二维数组的第一维度表示数组维度,二维数组的第二维度表示对象层级。数组维度和对象层级都具有可扩展性,可以根据实际业务场景需求进行扩展。
具体地,针对当前遍历到的JSON转换表达式中的key,将该key依次按照“[]”和“.”分隔符,通过for循环,拆分为key的二维数组。
示例性地,假设当前遍历到的JSON转换表达式中的key为:invoiceList[].orderDetail.data[].productName,对该key按照符号“[]”拆分出key的第一维数组,并按照符号“.”拆分出key的第二维数组,得到key的二维数组为:[[invoiceList],[orderDetail,data],[productName]],其中,[invoiceList]表示第一维度的第1个元素,[orderDetail,data]表示第一维度的第2个元素,[productName]表示第一维度的第3个元素,invoiceList表示第一维度第1个元素中的第二维度的第1个元素,orderDetail表示第一维第2个元素中的第二维度的第1个元素,data表示第一维第2个元素中的第二维度的第2个元素,productName表示第一维第3个元素中的第二维度的第1个元素。
步骤c、判断key的value是否包含变量,若包含,则对value按照第一预设符号和第二预设符号进行拆分,得到value的二维数组。
具体地,根据JSON转换表达式key的value是否包含${},判断是否为变量,如果包含${},则是变量,则将${}部分{}里面的表达式拆分为value的二维数组。如果不包含${},则标记为常量。
示例性地,JSON表达式中的value若包含变量,则其变量格式可以为:{"目标key":"${源key}"};JSON表达式的value部分若包含常量,则常量格式可以为:{"目标key":{"name":"value"}"}。当value包含变量时,需要对value的${}部分中的{源key}进行拆分为二维数组;当value包含常量时,则value的二维数组为空。
步骤d、针对遍历处理后的JSON转换表达式中的key,递归处理key的value的二维数组,判断value的二维数组是否为非空,若为非空,则执行步骤e,若为空,则执行步骤f。
具体地,递归处理数组部分,即包含“[]”部分,以及处理对象部分,即包含“.”部分,并判断value是否为非空,是否变量,获取值。当判断到value的二维数组为非空时,表明value包含变量,当判断到value的二维数组为空时,表明value包含常量。
步骤e,当value的二维数组为非空时,从源JSON数据中确定出对应的源key,并将源key的value的值确定为目标值。
步骤f,当value的二维数组为空时,将key的value的值确定为目标值。
步骤g,判断JSON转换表达式是否包含扩展指令,若包含扩展指令,则根据扩展指令处理目标值,得到最终值,若不包含扩展指令,则将目标值确定为最终值。
步骤h,构造key的二维数组对应的目标key,并将最终值作为目标key的value,并返回执行步骤b,循环处理JSON转换表达式中的下一个key,直至构造出所有的目标key。
具体地,通过JSON转换表达式的key,利用转换表达式key与目标JSON的key的对应关系表,找到对应的目标JSON的key,将步骤g得到的最终值赋值给目标JSON的key。
步骤i,根据构造出的所有目标key以及各目标key的value,生成目标JSON数据。
示例性地,如图3所示,假设图3左侧部分为源JSON数据,图3中间部分为执行步骤102组装出的JSON转换表达式,那么执行步骤103根据JSON转换表达式,对源JSON数据进行转换后,可以得到图3右侧部分所示的目标JSON数据。
可以理解的是,除上述方式之外,还可以通过其他方式实现根据JSON转换表达式将源JSON数据转换为目标JSON数据的过程,本申请对此不作限定。
与现有技术中通过开发代码定制化实现特定业务场景的JSON格式映射转换的方案相比,本实施例由于在源JSON数据转换为目标JSON数据的过程中,是通过对JSON转换表达式中的key拆分为二维数组,然后构造key的二维数组对应的目标JSON的key,以及对JSON转换表达式中的key的value进行拆分得到value的二维数组,再判断value的二维数组是否为非空,为非空时,从源JSON数据中确定出对应的源key,并将源key的value的值确定为目标值,为空时,将key的value的值确定为目标值,进而获取到目标JSON的key的value的值。在转换过程中,目标JSON的key以及key的value的值可以自动生成,无需人工预先编写、创建特定业务场景下的定制化代码进行实现转换,因此能够提高效率并节省人力成本,降低人工维护成本,且由于拆分出的二维数组的本质是数组中的元素又是数组,因此可以对数组中的元素结合实际业务场景进行扩展,以适应于不同的业务场景,具有较强的通用性。
在一个实施例中,数据转换指令还携带有系统用户编码、定制接口编码、标准接口编码及出入参标识,上述步骤102根据数据转换指令,对预先配置的参数映射配置信息组装成JSON转换表达式之前,方法还包括:
根据系统用户编码、定制接口编码、标准接口编码及出入参标识,从预设的配置信息库中查询出对应的参数映射配置信息。
由于定制接口与标准接口对JSON格式数据结构定义存在差异,因此需要将定制接口发出的服务请求携带的定制JSON入参数据转换为能够为标准接口识别和接收的标准JSON入参数据,以及将标准接口返回的标准JSON出参数据转换为能够为定制接口识别和接收的定制JSON出参数据。
其中,上述的系统用户编码用于标识调用定制接口发出服务请求的用户,例如可以用于标识机关、团体或企业中的哪一个单位,比如天津农行、国家电网、中国联通等。上述的定制接口编码用于标识定制接口,标准接口编码用于标识标准接口,应理解,定制接口以及标准接口均可以是一个或多个。上述的出入参标识用于标识源JSON数据是定制入参数据还是标准出参数据,应理解,定制入参数据是指来自定制接口输出的定制JSON入参数据,标准出参数据是指来自标准接口输出的标准JSON出参数据,其中,源JSON数据是定制入参数据时所查询到的参数映射配置信息不同于源JSON数据是标准出参数据时查询到的参数映射配置信息。
具体地,预设的配置信息库中存储有系统用户编码、定制接口编码、标准接口编码、出入参标识与参数映射配置信息的对应关系,当获取到数据转换指令时,首先根据系统用户编码、定制接口编码、标准接口编码以及入参标识,查询出对应的参数映射配置信息。
在一个实施例中,若出入参标识指示源JSON数据为定制入参数据,步骤103根据JSON转换表达式,将源JSON数据转换为目标JSON数据,可以包括:
根据JSON转换表达式,将源JSON数据转换标准JSON入参数据,以传输至标准接口编码对应的标准接口。
示例性地,通过根据JSON转换表达式,将一定制JSON入参数据转换为标准JSON入参数据,该标准JSON入参数据可以示例如下:
本实施例中,通过JSON转换表达式对定制JSON入参数据映射转换为标准JSON入参数据,无需开发定制化编码,具有较强的通用性,能够极大地提高效率并节省人力成本。
在一个实施例中,若出入参标识指示源JSON数据为标准出参数据,步骤103根据JSON转换表达式,将源JSON数据转换为目标JSON数据,可以包括:
根据JSON转换表达式,将源JSON数据转换定制JSON出参数据,以传输至定制接口编码对应的定制接口。
示例性地,通过根据JSON转换表达式,将一标准JSON出参数据转换为定制JSON出参数据,该标准JSON入参数据可以示例如下:
本实施例中,通过JSON转换表达式对标准JSON出参数据映射转换为定制JSON出参数据,无需开发定制化编码,具有较强的通用性,能够极大地提高效率并节省人力成本。
下面结合图4进行说明本申请提供的JSON数据转换方法的具体流程,参照图4所示,JSON数据转换装置接收一应用系统的定制接口发出的服务请求,该服务请求携带有定制JSON入参数据,通过URL解析得到该应用系统的用户编码、定制接口的接口编码以及标准接口的接口编码,查询接口并校验接口,通过入参解析得到定制JSON入参数据并校验,在校验通过后,查询出对应的配置信息,并根据标准接口的接口编码进行分组处理,对查询到的参数映射配置信息中包含的参字段映射关系以及字段值解析规则(即扩展指令)按照预定义的JSON数据结构进行组装为JSON表达式,通过调用转换引擎利用JSON转换表达式转换将定制JSON入参数据映射转换为标准JSON入参数据,然后将标准JSON入参数据发送至标准接口对应的代理层,并获得该代理层基于标准JSON入参数据返回的标准JSON出参数据。针对该标准JSON出参数据查询出对应的参数映射配置信息,根据参数映射配置信息中的字段映射关系以及字段值解析规则组装成JSON转换表达式,调用转换引擎利用JSON转换表达式转换将标准JSON出参数据映射转换为定制JSON出参数据,最后对不同标准接口返回的标准JSON出参数据各自转换出的定制JSON出参数据进行聚合,得到最终的响应结果并输出,其中不同标准接口对应不同代理层,不同代理层提供不同的服务,在不同代理层之间进行标准接口的调用形成调用链。
在一个实施例中,如图5所示,参数映射配置信息包括字段映射关系以及字段值解析规则,参数映射配置信息是通过如下方式获取得到,可以包括步骤:
501,提供配置页面,并获取用户通过配置页面提交的定制JSON报文。
502,对定制JSON报文进行解析,以获得待配置的定制参数。
具体地,将JSON报文中的字符串转为JSON对象,再把JSON对象递归转为树形结构,树形结构中的各叶节点即为待配置的定制参数。
更为具体地,步骤502的实现过程可以包括如下步骤:
5021,解析报文,判断是FORM格式,还是JSON格式;
5022,如果是Form格式,则用预设分隔符(例如“&”)切分为数组,再用预设切分符(例如“=”)切分为数组元素,取第一个元素为树节点名称,循环遍历,组装为树结构;
5023,如果是JSON格式,调用解析JSON方法解析字符串:
如果是数组,但数组元素不是基本类型,则解析第一个元素,递归调用解析JSON方法;如果不是数组,并且值不是基本类型,则取key为树的节点名称,递归遍历值,否则取key为树的节点名称;
5024,组装生成树。
503,获取用户通过配置页面对待配置的定制参数与标准参数配置的字段映射关系以及字段值解析规则。
504,根据配置的字段映射关系以及字段值解析规则,生成参数映射配置信息。其中,字段值解析规则中包括扩展指令。
具体地,针对定制接口和标准接口之间存在的差异:参数名称不同、参数类型不同、参数个数不同、参数结构不同等,用户可以通过在配置平台提供的配置页面上配置规则实现映射转换,其中,规则包括但不限于:基本类型转换规则、设置标准参数固定值、基本数组转对象数组。
示例性地,参照图6所示,图6为本申请实施例提供的参数映射配置页面的界面示意图,该配置页面提供基本信息配置、请求参数配置、返回参数配置、异常码配置以及提交配置功能,例如,对请求参数配置时,可以输入请求报文,触发解析报文按钮,会自动解析出入参请求报文的树形结构,树形结构包括定制叶节点列表,点选其中某个定制叶节点,例如定制参数sku,可以对该定制参数进行参数基本信息的配置,包括字段名称、字段中文描述、是否必填、是否数组、字段类型以及入参值样例;对定制参数进行字段映射配置,例如对定制参数sku设置标准参数为skuId,此外还可以通过字段值解析配置进行设置字段值解析规则,即扩展指令。
本实施例中,通过向用户提供配置页面,可以实现对不同接口的JSON数据进行参数映射关系以及解析规则的灵活配置,并且通过参数隐私配置信息生成转换表达式,能够实现不同结构的JSON数据转换。
在一个实施例中,如图7所示,上述步骤503获取用户通过配置页面对待配置的定制参数与标准参数配置的字段映射关系以及字段值解析规则之前,方法还可以包括:
701,获取预先建立的字段名命名相似或含义描述一致的参数之间的关联关系。
702,获取通过机器学习对历史样本数据进行训练得到的模型库,其中历史样本数据包括已配置的定制参数与标准参数之间的映射关系。
具体地,通过机器学习不断对定制参数与标准参数的关联关系进行训练学习,以得到模型库。其中,机器学习可以采用例如聚类算法、神经网络、贝叶斯、回归分析等算法对定制参数与标准参数的关联关系进行统计分析,生成定制参数与标准参数的关联关系的规律结果(例如聚类或者分类结果等)。
703,根据模型库以及预先建立的关联关系对待配置的定制参数进行预测,以确定与待配置的定制参数具有映射关系的标准参数。
其中,步骤703的实现过程可以包括:
1)针对每一个标准接口,解析该标准接口的每一个标准参数;
2)遍历每一个标准参数,针对遍历到的标准参数,从模型库中获取该标准参数的所有可能映射的定制参数;
3)遍历该标准参数的每一个可能映射的定制参数,将遍历到的定制参数与当前待配置的定制参数进行匹配,若匹配成功,则记录定制参数与标准参数的映射关系。
704,将与待配置的定制参数具有映射关系的标准参数显示在配置页面,以供用户参考。
本实施例中,根据参数名称、参数描述字段及历史数据建立参数之间的关联关系,并通过机器信息对定制参数与标准参数的映射关系进行建模,对模型训练,最后利用参数之间的关联关系以及训练好的模型对定制参数与标准参数数据进行分析预测,确定与待配置的定制参数具有映射关系的标准参数,以及将与待配置的定制参数具有映射关系的标准参数显示在配置页面,以供用户参考,能够进一步地方便用户对定制参数与标准参数进行参数映射配置,节省参数映射配置所耗费的时间。
在一个实施例中,步骤704执行之前,方法还可以包括:
解析待配置的定制参数的参数结构,根据定制参数值识别出参数类型,并根据参数类型、定制参数值和对应的标准参数值,获取相应的字段值解析规则。
上述步骤704将与待配置的定制参数具有映射关系的标准参数显示在配置页面,以供用户参考,该过程可以包括:
将与待配置的定制参数具有映射关系的标准参数以及字段值解析规则显示在配置页面,以供用户参考。
其中,解析待配置的定制参数的参数结构,根据定制参数值识别出参数类型,并根据定制参数值和对应的标准参数值,获取相应的参数转换规则,可以包括:
解析定制参数,依次遍历获取定制参数值,根据获取到的定制参数值填充参数配置类型,判断是否为数组,若是,则查找到映射的标准参数和对应的标准参数值,根据定制参数值和标准参数值,确定出对应的字段值解析规则。
示例性地,若定制参数值与标准参数值相同,则判断参数类型是否相同,若否,则确定转换规则为基本类型转换。
本实施例中,通过获取定制参数与标准参数之间的字段值解析规则,并将标准参数与字段值解析规则显示在配置页面,供用户参考进行配置参数映射信息,能够进一步地方便用户对定制参数与标准参数进行参数映射配置,节省参数映射配置所耗费的时间。
在一个实施例中,如图8所示,提供一种JSON数据转换装置,装置包括:
获取模块801,用于获取数据转换指令,其中数据转换指令携带有待转换的源JSON数据;
组装模块802,用于根据数据转换指令,对预设的参数映射配置信息组装成JSON转换表达式,其中参数映射配置信息包括定制JSON参数与标准JSON参数的字段映射关系以及字段值解析规则;
转换模块803,用于根据JSON转换表达式,将源JSON数据转换为目标JSON数据。
在一个实施例中,转换模块803具体用于执行如下步骤:
步骤a,遍历处理JSON转换表达式中的key;
步骤b、针对当前遍历到的JSON转换表达式中的key,对key按照第一预设符号和第二预设符号进行拆分,得到key的二维数组;
步骤c、判断key的value是否包含变量,若包含,则对value按照第一预设符号和第二预设符号进行拆分,得到value的二维数组;
步骤d、针对遍历处理后的JSON转换表达式中的key,递归处理key的value的二维数组,判断value的二维数组是否为非空,若为非空,则执行步骤e,若为空,则执行步骤f;
步骤e,当value的二维数组为非空时,从源JSON数据中确定出对应的源key,并将源key的value的值确定为目标值;
步骤f,当value的二维数组为空时,将key的value的值确定为目标值;
步骤g,判断JSON转换表达式是否包含扩展指令,若包含扩展指令,则根据扩展指令处理目标值,得到最终值,若不包含扩展指令,则将目标值确定为最终值;
步骤h,构造key的二维数组对应的目标key,并将最终值作为目标key的value,返回执行步骤b,循环处理JSON转换表达式中的下一个key,直至构造出所有的目标key;
步骤i,根据构造出的所有目标key以及各目标key的value,生成目标JSON数据。
在一个实施例中,数据转换指令还携带有系统用户编码、定制接口编码、标准接口编码及出入参标识,装置还包括:
查询模块,用于根据系统用户编码、定制接口编码、标准接口编码及出入参标识,从预设的配置信息库中查询出对应的参数映射配置信息。
在一个实施例中,若出入参标识指示源JSON数据为定制入参数据,转换模块具体用于:
根据JSON转换表达式,将源JSON数据转换标准JSON入参数据,以传输至标准接口编码对应的标准接口。
在一个实施例中,若出入参标识指示源JSON数据为标准出参数据,转换模块具体用于:
根据JSON转换表达式,将源JSON数据转换定制JSON出参数据,以传输至定制接口编码对应的定制接口。
在一个实施例中,参数映射配置信息包括字段映射关系以及字段值解析规则,装置还包括配置模块,配置模块具体用于:
提供配置页面,并获取用户通过配置页面提交的定制JSON报文;
对定制JSON报文进行解析,以获得待配置的定制参数;
获取用户通过配置页面对待配置的定制参数与标准参数配置的字段映射关系以及字段值解析规则;
根据配置的字段映射关系以及字段值解析规则,生成参数映射配置信息。
在一个实施例中,配置模块具体还用于:
获取用户通过配置页面针对参数映射配置信息输入的关联指令,绑定指令携带有系统用户编码、定制接口编码、标准接口编码及出入参标识;
根据关联指令,将系统用户编码、定制接口编码、标准接口编码、出入参标识与参数映射配置信息进行关联地存储至配置信息库中。
在一个实施例中,装置还包括预测模块,预测模块具体用于:
获取预先建立的字段名命名相似或含义描述一致的参数之间的关联关系;
获取通过机器学习对历史样本数据进行训练得到的模型库,其中样本数据包括已配置的定制参数与标准参数之间的映射关系;
根据模型库以及预先建立的关联关系对待配置的定制参数进行预测,以确定与待配置的定制参数具有映射关系的标准参数;
将与待配置的定制参数具有映射关系的标准参数显示在配置页面,以供用户参考。
需要说明的是:本申请实施例提供的JSON数据转换装置中,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,本实施例中的JSON数据转换装置的具体实现过程和有益效果详见实施例中的JSON数据转换方法,这里不再赘述。
图9为本申请实施例提供的计算机设备的内部结构图。该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种JSON数据转换方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
获取数据转换指令,其中数据转换指令携带有待转换的源JSON数据;
根据数据转换指令,对预设的参数映射配置信息组装成JSON转换表达式,其中参数映射配置信息包括定制JSON参数与标准JSON参数的字段映射关系以及字段值解析规则;
根据JSON转换表达式,将源JSON数据转换为目标JSON数据。
在一个实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取数据转换指令,其中数据转换指令携带有待转换的源JSON数据;
根据数据转换指令,对预设的参数映射配置信息组装成JSON转换表达式,其中参数映射配置信息包括定制JSON参数与标准JSON参数的字段映射关系以及字段值解析规则;
根据JSON转换表达式,将源JSON数据转换为目标JSON数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种JSON数据转换方法,其特征在于,所述方法包括:
获取数据转换指令,其中所述数据转换指令携带有待转换的源JSON数据;
根据所述数据转换指令,对预设的参数映射配置信息组装成JSON转换表达式,其中所述参数映射配置信息包括定制JSON参数与标准JSON参数的字段映射关系以及字段值解析规则;
根据所述JSON转换表达式,将所述源JSON数据转换为目标JSON数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述JSON转换表达式,将所述源JSON数据转换为目标JSON数据,包括:
步骤a,遍历处理所述JSON转换表达式中的key;
步骤b、针对当前遍历到的所述JSON转换表达式中的key,对所述key按照第一预设符号和第二预设符号进行拆分,得到所述key的二维数组;
步骤c、判断所述key的value是否包含变量,若包含,则对所述value按照所述第一预设符号和所述第二预设符号进行拆分,得到所述value的二维数组;
步骤d、针对遍历处理后的所述JSON转换表达式中的所述key,递归处理所述key的value的二维数组,判断所述value的二维数组是否为非空,若为非空,则执行步骤e,若为空,则执行步骤f;
步骤e,当所述value的二维数组为非空时,从所述源JSON数据中确定出对应的源key,并将所述源key的value的值确定为目标值;
步骤f,当所述value的二维数组为空时,将所述key的value的值确定为所述目标值;
步骤g,判断所述JSON转换表达式是否包含扩展指令,若包含扩展指令,则根据所述扩展指令处理所述目标值,得到最终值,若不包含所述扩展指令,则将所述目标值确定为所述最终值;
步骤h,构造所述key的二维数组对应的目标key,并将所述最终值作为所述目标key的value,返回执行步骤b,循环处理所述JSON转换表达式中的下一个key,直至构造出所有的目标key;
步骤i,根据构造出的所有所述目标key以及各所述目标key的value,生成所述目标JSON数据。
3.根据权利要求1或2所述的方法,其特征在于,所述数据转换指令还携带有系统用户编码、定制接口编码、标准接口编码及出入参标识,所述根据所述数据转换指令,对预先配置的参数映射配置信息组装成JSON转换表达式之前,所述方法还包括:
根据所述系统用户编码、所述定制接口编码、所述标准接口编码及所述出入参标识,从预设的配置信息库中查询出对应的参数映射配置信息。
4.根据权利要求3所述的方法,其特征在于,若所述出入参标识指示所述源JSON数据为定制入参数据,所述根据所述JSON转换表达式,将所述源JSON数据转换为目标JSON数据,包括:
根据所述JSON转换表达式,将所述源JSON数据转换标准JSON入参数据,以传输至所述标准接口编码对应的标准接口。
5.根据权利要求3所述的方法,其特征在于,若所述出入参标识指示所述源JSON数据为标准出参数据,所述根据所述JSON转换表达式,将所述源JSON数据转换为目标JSON数据,包括:
根据所述JSON转换表达式,将所述源JSON数据转换定制JSON出参数据,以传输至所述定制接口编码对应的定制接口。
6.根据权利要求1所述的方法,其特征在于,所述参数映射配置信息包括字段映射关系以及字段值解析规则,所述参数映射配置信息是通过如下方式获取得到,包括:
提供配置页面,并获取用户通过所述配置页面提交的定制JSON报文;
对所述定制JSON报文进行解析,以获得待配置的定制参数;
获取用户通过所述配置页面对所述待配置的定制参数与标准参数配置的字段映射关系以及字段值解析规则;
根据配置的所述字段映射关系以及所述字段值解析规则,生成所述参数映射配置信息。
7.根据权利要求6所述的方法,其特征在于,所述获取用户通过所述配置页面对所述待配置的定制参数与标准参数配置的字段映射关系以及字段值解析规则之前,所述方法还包括:
获取预先建立的字段名命名相似或含义描述一致的参数之间的关联关系;
获取通过机器学习对历史样本数据进行训练得到的模型库,其中所述历史样本数据包括已配置的定制参数与标准参数之间的映射关系;
根据所述模型库以及预先建立的所述关联关系对所述待配置的定制参数进行预测,以确定与所述待配置的定制参数具有映射关系的标准参数;
将与所述待配置的定制参数具有映射关系的标准参数显示在所述配置页面,以供用户参考。
8.一种JSON数据转换装置,其特征在于,所述装置包括:
获取模块,用于获取数据转换指令,其中所述数据转换指令携带有待转换的源JSON数据;
组装模块,用于根据所述数据转换指令,对预设的参数映射配置信息组装成JSON转换表达式,其中所述参数映射配置信息包括定制JSON参数与标准JSON参数的字段映射关系以及字段值解析规则;
转换模块,用于根据所述JSON转换表达式,将所述源JSON数据转换为目标JSON数据。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110178460.3A CN112882974B (zh) | 2021-02-09 | 2021-02-09 | 一种json数据转换方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110178460.3A CN112882974B (zh) | 2021-02-09 | 2021-02-09 | 一种json数据转换方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112882974A true CN112882974A (zh) | 2021-06-01 |
CN112882974B CN112882974B (zh) | 2024-01-05 |
Family
ID=76056295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110178460.3A Active CN112882974B (zh) | 2021-02-09 | 2021-02-09 | 一种json数据转换方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112882974B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113612725A (zh) * | 2021-06-18 | 2021-11-05 | 北京旷视科技有限公司 | 数据转换方法、装置、电子设备及可读存储介质 |
CN113626223A (zh) * | 2021-08-12 | 2021-11-09 | 北京京东振世信息技术有限公司 | 一种接口调用方法和装置 |
CN113742407A (zh) * | 2021-08-31 | 2021-12-03 | 浙江惠瀜网络科技有限公司 | 数据转换方法及装置 |
CN114040018A (zh) * | 2021-10-11 | 2022-02-11 | 许昌许继软件技术有限公司 | 一种基于json数据格式的数据收发方法及装置 |
CN114070886A (zh) * | 2021-11-17 | 2022-02-18 | 深圳壹账通智能科技有限公司 | 报文转换方法、装置、设备及介质 |
CN114064720A (zh) * | 2021-11-15 | 2022-02-18 | 中国建设银行股份有限公司 | 一种异构流数据处理方法及装置 |
CN116522871A (zh) * | 2023-07-05 | 2023-08-01 | 鹏城实验室 | 数据格式转换方法、装置、设备和存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9201558B1 (en) * | 2011-11-03 | 2015-12-01 | Pervasive Software Inc. | Data transformation system, graphical mapping tool, and method for creating a schema map |
CN107526806A (zh) * | 2017-08-22 | 2017-12-29 | 北京奇虎科技有限公司 | 数据的转换方法及装置 |
CN108681590A (zh) * | 2018-05-15 | 2018-10-19 | 普信恒业科技发展(北京)有限公司 | 增量数据处理方法及装置、计算机设备、计算机存储介质 |
CN109359145A (zh) * | 2018-09-12 | 2019-02-19 | 国云科技股份有限公司 | 一种多样式数据的标准化处理方法 |
CN109684607A (zh) * | 2017-10-19 | 2019-04-26 | 腾讯科技(深圳)有限公司 | Json数据解析方法、装置、计算机设备和存储介质 |
CN110505218A (zh) * | 2019-08-07 | 2019-11-26 | 中国电子科技集团公司第二十八研究所 | 基于json的栅格数据自适应压缩传输方法及计算机存储介质 |
CN110554878A (zh) * | 2019-09-04 | 2019-12-10 | 网易(杭州)网络有限公司 | 数据转换方法、游戏数据的处理方法、装置和服务器 |
CN110688400A (zh) * | 2019-09-02 | 2020-01-14 | 深圳壹账通智能科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN112115190A (zh) * | 2020-08-20 | 2020-12-22 | 苏宁云计算有限公司 | 一种接口报文的转换方法、装置及系统 |
CN112328607A (zh) * | 2020-12-04 | 2021-02-05 | 四三九九网络股份有限公司 | 一种大体积json数据的异步压缩处理方法 |
-
2021
- 2021-02-09 CN CN202110178460.3A patent/CN112882974B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9201558B1 (en) * | 2011-11-03 | 2015-12-01 | Pervasive Software Inc. | Data transformation system, graphical mapping tool, and method for creating a schema map |
CN107526806A (zh) * | 2017-08-22 | 2017-12-29 | 北京奇虎科技有限公司 | 数据的转换方法及装置 |
CN109684607A (zh) * | 2017-10-19 | 2019-04-26 | 腾讯科技(深圳)有限公司 | Json数据解析方法、装置、计算机设备和存储介质 |
CN108681590A (zh) * | 2018-05-15 | 2018-10-19 | 普信恒业科技发展(北京)有限公司 | 增量数据处理方法及装置、计算机设备、计算机存储介质 |
CN109359145A (zh) * | 2018-09-12 | 2019-02-19 | 国云科技股份有限公司 | 一种多样式数据的标准化处理方法 |
CN110505218A (zh) * | 2019-08-07 | 2019-11-26 | 中国电子科技集团公司第二十八研究所 | 基于json的栅格数据自适应压缩传输方法及计算机存储介质 |
CN110688400A (zh) * | 2019-09-02 | 2020-01-14 | 深圳壹账通智能科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN110554878A (zh) * | 2019-09-04 | 2019-12-10 | 网易(杭州)网络有限公司 | 数据转换方法、游戏数据的处理方法、装置和服务器 |
CN112115190A (zh) * | 2020-08-20 | 2020-12-22 | 苏宁云计算有限公司 | 一种接口报文的转换方法、装置及系统 |
CN112328607A (zh) * | 2020-12-04 | 2021-02-05 | 四三九九网络股份有限公司 | 一种大体积json数据的异步压缩处理方法 |
Non-Patent Citations (1)
Title |
---|
王晓: ""基于JSON RPC异步通讯技术的WEB实现"", 《青岛远洋船员学院学报》, no. 2, pages 14 - 18 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113612725A (zh) * | 2021-06-18 | 2021-11-05 | 北京旷视科技有限公司 | 数据转换方法、装置、电子设备及可读存储介质 |
CN113626223A (zh) * | 2021-08-12 | 2021-11-09 | 北京京东振世信息技术有限公司 | 一种接口调用方法和装置 |
CN113742407A (zh) * | 2021-08-31 | 2021-12-03 | 浙江惠瀜网络科技有限公司 | 数据转换方法及装置 |
CN113742407B (zh) * | 2021-08-31 | 2024-04-30 | 浙江惠瀜网络科技有限公司 | 数据转换方法及装置 |
CN114040018A (zh) * | 2021-10-11 | 2022-02-11 | 许昌许继软件技术有限公司 | 一种基于json数据格式的数据收发方法及装置 |
CN114064720A (zh) * | 2021-11-15 | 2022-02-18 | 中国建设银行股份有限公司 | 一种异构流数据处理方法及装置 |
CN114070886A (zh) * | 2021-11-17 | 2022-02-18 | 深圳壹账通智能科技有限公司 | 报文转换方法、装置、设备及介质 |
CN116522871A (zh) * | 2023-07-05 | 2023-08-01 | 鹏城实验室 | 数据格式转换方法、装置、设备和存储介质 |
CN116522871B (zh) * | 2023-07-05 | 2024-01-09 | 鹏城实验室 | 数据格式转换方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112882974B (zh) | 2024-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112882974B (zh) | 一种json数据转换方法、装置、计算机设备和存储介质 | |
CN107861870B (zh) | 接口测试及测试数据生成方法、装置、终端和存储介质 | |
CN108628974B (zh) | 舆情信息分类方法、装置、计算机设备和存储介质 | |
CN109343857B (zh) | 线上部署机器学习模型的方法、设备和存储介质 | |
CN111177176A (zh) | 数据检测方法、装置及存储介质 | |
CN109684607B (zh) | Json数据解析方法、装置、计算机设备和存储介质 | |
CN104156313A (zh) | 一种Web服务测试用例自动生成方法 | |
CN110276074B (zh) | 自然语言处理的分布式训练方法、装置、设备及存储介质 | |
CN111061678B (zh) | 业务数据处理方法、装置、计算机设备和存储介质 | |
CN113238740B (zh) | 代码生成方法、代码生成装置、存储介质及电子设备 | |
CN112231418A (zh) | 电力标准知识图谱构建方法、装置、计算机设备和介质 | |
US11537448B1 (en) | Adapting application programming interfaces with schema mappings | |
CN112148343B (zh) | 规则发布方法、装置及终端设备 | |
CN115202626A (zh) | 一种支持多技术栈组件的低代码前端开发方法 | |
CN114594927A (zh) | 低代码开发方法、装置、系统、服务器及存储介质 | |
CN115358200A (zh) | 一种基于SysML元模型的模板化文档自动生成方法 | |
CN114416049B (zh) | 结合rpa和ai的服务接口的配置方法及装置 | |
CN116227505A (zh) | 一种国际化文件翻译方法、装置、设备及介质 | |
US20230185639A1 (en) | Mapping application programming interface schemas with semantic representations | |
CN112487163B (zh) | 自动化流程的执行方法及其接口数据的获取方法、装置 | |
CN113934786A (zh) | 一种构建统一etl的实施方法 | |
CN110309214A (zh) | 一种指令执行方法及其设备、存储介质、服务器 | |
CN116541020A (zh) | 基于领域模型的代码生成方法、装置、设备、介质及产品 | |
CN111026972A (zh) | 物联网中的订阅数据推送方法、装置、设备及存储介质 | |
CN114371884A (zh) | Flink计算任务的处理方法、装置、设备和存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |