掌桥专利:专业的专利平台
掌桥专利
首页

表单JSON数据的生成方法、设备及存储介质

文献发布时间:2023-06-19 10:19:37


表单JSON数据的生成方法、设备及存储介质

技术领域

本申请涉及区块链技术领域,尤其涉及一种表单JSON数据的生成方法、设备及存储介质。

背景技术

BaaS(区块链即服务)是一种以提供区块链为主的新型云服务平台,用来为客户运行和管理区块链节点及其相关应用,提供基于区块链的交易操作和数据分析等一系列服务。BaaS作为一个互联网项目,需要使用前后端分离作为前后端数据交互的方式。

当前,基于BaaS平台进行数据交互时,并未对JSON数据加以设计,对于既定的需求,前端列出对应于该需求的数据字段,这些数据字段就组成了前后端接口交互的JSON数据。例如一个用户登录的需求,需要用户输入用户名和密码,那么JSON数据就由用户名和密码这两个字段组成。可见,在现有技术的方案中,每个接口都需要前后端人员列出所需的数据字段,费时费力。

发明内容

本申请提供了一种表单JSON数据的生成方法、设备及存储介质,以解决现有技术中前后端交互时存在的费时费力的问题。

第一方面、提供一种表单JSON数据的生成方法,包括:

获取与区块链控制文档对应的表单元数据,所述表单元数据的组织结构与通用的表单项目协议的组织结构相同;

调用所述表单项目协议,转换所述表单元数据,得到所述表单JSON数据。

可选地,调用所述表单项目协议,转换所述表单元数据,得到所述表单JSON数据,包括:

利用所述表单元数据,对所述表单项目协议中的第一字段赋值,得到所述表单JSON数据。

可选地,所述表单元数据包括表单;

利用所述表单元数据,对所述表单项目协议中的第一字段赋值,得到所述表单JSON数据,包括:

确定所述表单的标识与所述第一字段的标识相同,并从所述表单中获取第二字段;

若所述第二字段为描述性字段,利用所述第二字段的字段内容对所述第一字段赋值,得到所述表单的JSON数据;

若所述第二字段为嵌套性字段,获取所述第二字段的字段内容,确定所述表单项目协议中与所述第二字段的字段内容对应的子表单,并利用所述表单中与所述第二字段对应的描述性字段,对所述子表单中的所述第一字段赋值。

可选地,利用所述第二字段的字段内容对所述第一字段赋值,得到所述表单的JSON数据,包括:

确定所述第二字段的名称与所述第一字段的名称相同,并将所述第二字段的字段内容赋值给所述第一字段,得到所述表单的JSON数据。

可选地,利用所述第二字段对应的描述性字段,对所述子表单中的所述第一字段赋值,包括:

从所述第二字段对应的描述性字段中选择第三字段,确定所述第三字段的名称与所述第一字段的名称相同,并将所述第三字段的字段内容赋值给所述第一字段。

可选地,所述表单元数据包括表单输入项;

利用所述表单元数据,对所述表单项目协议中的第一字段赋值,得到所述表单JSON数据,包括:

确定所述表单输入项的标识与所述第一字段的标识相同;

从所述表单输入项中,确定与所述第一字段具有相同名称的第四字段;

将所述第四字段的字段内容赋值给所述第一字段。

可选地,将所述第四字段的字段内容赋值给所述第一字段之后,还包括:

当所述表单输入项具有输入联动项时,获取所述表单项目协议中与所述第一字段对应的目标输入项,确定所述目标输入项对应的目标输入联动项,并利用所述输入联动项中的描述性字段,对所述目标输入联动项中的字段进行赋值。

可选地,利用所述输入联动项中的描述性字段,对所述目标输入联动项中的字段进行赋值之后,还包括:

获取所述输入联动项中的关联性字段的字段内容,所述输入联动项中的关联性字段包括表单字段;

当所述表单字段不为空时,利用所述表单字段的内容,对所述目标输入项中与所述表单字段对应的关联性字段赋值,并确定所述表单字段的字段内容对应的目标表单,以及所述表单项目协议中与所述表单字段的字段内容对应的目标输入域;

利用所述目标表单对所述目标输入域进行赋值。

第二方面、提供一种电子设备,包括:处理器、通信组件、存储器和通信总线,其中,处理器、通信组件和存储器通过通信总线完成相互间的通信;

所述存储器,用于存储计算机程序;

所述处理器,用于执行所述存储器中所存储的程序,实现第一方面中所述的表单JSON数据的生成方法。

第三方面、提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中所述的表单JSON数据的生成方法。

本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的技术方案,预先设置通用的表单项目协议,当存在区块链控制文档时,生成与区块链控制文档对应的表单元数据,并调用表单项目协议,将表单元数据转换为表单JSON数据。相对于现有技术,对于既定的区块链服务平台需求,前端无需列出所需的数据字段,后端只需编写简洁的表单元数据,提高了前后端的开发效率。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例中表单JSON数据的生成系统的结构示意图;

图2为本申请实施例中一种表单JSON数据的生成方法的流程示意图;

图3为本申请实施例中又一种表单JSON数据的生成方法的流程示意图;

图4为本申请实施例中又一种表单JSON数据的生成方法的流程示意图;

图5为本申请实施例中表单JSON数据的生成装置的结构示意图;

图6为本申请实施例中电子设备结构示意图。

具体实施方式

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

为便于对本申请实施例的理解,先对本申请涉及的系统架构进行描述:

参见图1,为本申请实施例示出的一种表单JSON数据的生成系统的系统架构示意图。

该系统包括:前端设备110、与前端设备110通信的BaaS平台120、以及与BaaS平台120通信的后端设备130。

前端设备110,用于向BaaS平台120发送区块链控制需求或与区块链控制需求对应的区块链控制文档;接收BaaS平台120返回的与区块链控制需求对应的表单JSON数据,并对表单JSON数据进行渲染,生成表单。

本实施例中,区块链控制需求可以为创建区块链的需求、对区块链的启停控制需求、或删除区块链的需求。

示例性地,创建区块链的需求可以包括,创建不同类型的区块链的需求。

其中,不同类型的区块链可以包括,公有链、联盟链和私有链。

示例性地,前端设备包括但不限于PC、手机、平板电脑等。

BaaS平台120,用于向后端设备130转发区块链控制需求或区块链控制文档;向前端设备110转发与区块链控制需求对应的表单JSON数据。

后端设备130,用于将区块链控制需求转换为区块链控制文档,并获取与区块链控制文档对应的表单元数据,表单元数据的组织结构与通用的表单项目协议的组织结构相同;调用表单项目协议,转换表单元数据,得到表单JSON数据。

示例性地,后端设备可以为服务器或任一电子设备,如PC、手机、平板电脑等。

本申请实施例提供的表单JSON数据的生成方法,可以由后端设备130执行,如图2所示,可以包括以下步骤:

步骤201、获取与区块链控制文档对应的表单元数据。

其中,表单元数据的组织结构与通用的表单项目协议的组织结构相同。

其中,表单项目协议为前端设备和后端设备共同约定的描述表单格式的语言,用于体现表单的各种属性。

示例性地,表单项目协议可以为BaaS表单项目协议。

可选地,表单项目协议的组织结构可以包括:

名字、输入域、输入项、输入联动项和EL表达式;

其中,名字为用于描述表单的文案。

输入域,用于描述表单项目协议的组织形式,其可以以并列或嵌套关系存在于表单项目协议中。

输入项,用于描述表单项目协议中需要用户输入参数的数据格式。

输入联动项,是当用户在表单项目协议对应的表单中输入或选定某一参数后,触发表单内容发生变化的机制。

比如当用户在区块链“共识算法”这一选择项中,如果选择“Raft”选项,那么下面部分的表单将显示Raft共识算法的相关参数供用户进一步输入;如果选择“Solo”选项,那么下面部分的表单将显示Solo共识算法的相关参数供用户进一步输入。

以下分别举例说明名字、输入域、输入项、输入联动以及EL表达式实现:

名字的实现可以为:

输入域的实现可以为:

其中,在展示输入域的类型的字段中,字段的字段内容可以对应列表形式展示或表格形式展示。

示例性的,该字段的字段内容缺省时,默认对应表格形式展示。

输入项的实现可以为:

其中,输入类型(inputType),可以包括输入框(input)、数字输入框(numberInput)、多行数字输入框(numberInputs)、开关(switch)、选择项(select)、多项选择项(radio)、文件(file)、多文件(files)、日期输入框(date)、时间输入框(time)、日期时间输入框(dateTime)、数字范围输入框(numberRange)或按钮(button)。

输入联动项的实现可以为:

其中,输入联动中的联动类型(reactType)语义如下:

1)showInput:显示Input输入域,该输入域被定义在inputs字段中,取下标为0的输入域。

2)showInputsByNumber:按照输入的数字,重复显示inputs字段中下标为0的输入域;例如输入4,则inputs以inputs[0]为模板,重复填充成长度为4的数组。

3)showInputByUrl:需要发送指定的HTTP请求,该请求将返回一个Input,填充到inputs[0]中或主键是targetInputId的目标输入域中。

EL表达式:

在输入域Input、输入项InputField的id、title、defaultValue字段和联动UrlAction中的url字段中,视BaaS项目的需求,都有可能需要出现形如${xxx}的El表达式,这依赖于前端动态的根据上下文进行填充。

例如在创建Fabric区块链时,需要在表单中显示当前用户所对应的组织名,组织名这个数据是根据当前用户而动态填充到表单中的,这就需要EL表达式来实现。

El表达式中出现的数据来源包括输入项Input的值、用户信息的字段值、showInputsByNumber类型联动的下标。

输入项的值用该输入项的id字段来表示,例如一个id是"blockchainName"的输入框,用户输入了"chain001",那么${blockchainName}的值就是"chain001"。

用户信息的字段值用${user.xxx}来表示,例如${user.org}表示取用户所在的组织名。

showInputsByNumber类型联动的下标是使用${index}来获取showInputsByNumber联动类型时,当前重复填充所在的下标,从1开始。比如用户输入4,则InputReact中的inputs数组,以inputs[0]为模板,重复填充成长度为4的数组,其中inputs[0]中的${index}取值为1,inputs[1]中的${index}取值为2,inputs[2]中的${index}取值为3,inputs[3]中的${index}取值为4。

基于上述通用的表单项目协议,生成的表单元数据可以至少包括表单数组、表单输入项数组以及输入联动项。

表单数组与表单项目协议的输入域相对应。示例性地,表单数组的定义可以为:

表单元数据的表单数组直接体现了表单JSON数据的整体格式,Inputs包含Input,以此体现表单的并列关系;Input中包含SubInputs,以此体现表单的嵌套关系。

其中,SubInputs字段的字段内容为子表单的ID,Fields字段的字段内容为表单输入项的ID。

其中,Depend字段表示BaaS项目中区块链节点对于主机资源之间的依赖关系。区块链节点的部署依赖于某一主机实例,而这一字段将指定区块链节点所需的主机表单。

表单输入项与表单项目协议的输入项相对应。

示例性地,表单输入项的定义可以为:

最后,关于输入联动项,表单元数据的输入联动项和表单协议的输入联动项相对应。

输入联动项的定义可以为:

其中,Reactions表示输入联动数组。对于单个输入联动FieldReactions,Field表示表单输入项的ID。

输入联动Reaction与项目输入协议中的输入联动InputReact相对应。

步骤202、调用表单项目协议,转换表单元数据,得到表单JSON数据。

由于表单元数据的组织结构与表单项目协议的组织结构相同,因此,在转换表单元数据时,可以利用表单元数据,对表单项目协议中的第一字段赋值,以得到表单JSON数据。

其中,第一字段为表单项目协议中的任一描述字段。

可选地,表单项目协议中的描述字段可以由用户预先设置。

例如,描述字段可以为title、edit等字段。

可选地,可以利用不同部分的标识的对应关系,实现用表单元数据对表单项目协议中的第一字段的赋值。

示例性地,表单元数据包括表单数组时,表单数组包括多个表单,对于表单数组中的任一表单,如图3所示,提供了对表单项目协议中的第一字段赋值,得到表单JSON数据的实现步骤:

步骤301、确定表单的标识与第一字段的标识相同,并从表单中获取第二字段。

其中,第一字段的标识为第一字段所在的输入域的标识。

步骤302、若第二字段为描述性字段,利用第二字段的字段内容对第一字段赋值,得到表单JSON数据。

其中,表单中的描述字段可以预先设置,如描述字段可以包括title或edit等字段。

可选地,在利用第二字段的字段内容对第一字段赋值时,当第二字段的名称与第一字段的名称相同时,将第二字段的字段内容赋值给第一字段。

步骤303、若第二字段为嵌套性字段,获取第二字段的字段内容,确定表单项目协议中与字段内容对应的子表单,并利用表单中与第二字段对应的描述性字段,对子表单中的第一字段赋值。

其中,嵌套性字段的字段内容可以为标识。

其中,嵌套性字段也可以预先设置。如嵌套性字段可以包括SubInputs(子输入域)字段。

示例性地,当第二字段为SubInputs字段时,子输入域的标识与SubInputs字段的字段内容相同。

可选地,利用表单中与第二字段对应的描述性字段,对子表单中的第一字段赋值的过程可以为,从描述性字段中选择第三字段,确定第三字段的名称与第一字段的名称相同,将第三字段的字段内容赋值给第一字段。

示例性地,表单元数据包括表单输入项数组时,表单输入项数组包括多个表单输入项,对于表单输入项数组中的任一表单输入项,如图4所示,提供了对表单项目协议中的第一字段赋值,得到表单JSON数据的实现步骤:

步骤401、确定表单输入项的标识与第一字段的标识相同。

其中,第一字段的标识可以为第一字段所属的表单输入项的标识。

步骤402、从表单输入项中,确定与第一字段具有相同名称的第四字段;

步骤403、将第四字段的字段内容赋值给第一字段。

进一步地,当表单输入项具有输入联动项时,还可以对表单项目协议中,与第一字段对应的目标输入联动项进行赋值。

可选地,利用输入联动项中的描述性字段,对目标输入联动项中的字段进行赋值。

示例性地,输入联动项中的描述性字段可以为TriggerRegex、ReactType、TargetInputId等字段。

可选地,当输入联动项中的关联性字段的字段内容不为空时,利用表单字段的内容,对目标输入项中与表单字段对应的关联性字段赋值,并确定表单字段的字段内容对应的目标表单,以及表单项目协议中与字段内容对应的目标输入域;利用目标表单对目标输入域进行赋值。

示例性地,输入联动项中的关联性字段可以为InputId。

本申请实施例提供的技术方案,预先设置通用的表单项目协议,当存在区块链控制文档时,生成与区块链控制文档对应的表单元数据,并调用表单项目协议,将表单元数据转换为表单JSON数据。相对于现有技术,对于既定的区块链服务平台需求,前端无需列出所需的数据字段,后端只需编写简洁的表单元数据,提高了前后端的开发效率。

本申请实施例还提供了一种表单JSON数据的生成装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图5所示,该装置主要包括:

获取单元501、用于获取与区块链控制文档对应的表单元数据,表单元数据的组织结构与通用的表单项目协议的组织结构相同;

转换单元502,用于调用表单项目协议,转换表单元数据,得到表单JSON数据。

基于同一构思,本申请实施例中还提供了一种电子设备,如图6所示,该电子设备主要包括:处理器601、通信组件602、存储器603和通信总线604,其中,处理器601、通信组件602和存储器603通过通信总线604完成相互间的通信。其中,存储器603中存储有可被至处理器601执行的程序,处理器601执行存储器603中存储的程序,实现如下步骤:

获取与区块链控制文档对应的表单元数据,表单元数据的组织结构与通用的表单项目协议的组织结构相同;

调用表单项目协议,转换表单元数据,得到表单JSON数据。

上述电子设备中提到的通信总线604可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。该通信总线604可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信组件602用于上述电子设备与其他设备之间的通信。

存储器603可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器601的存储装置。

上述的处理器601可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等,还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本申请的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述表单JSON数据的生成方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机可以时通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如DVD)或者半导体介质(例如固态硬盘)等。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

相关技术
  • 表单JSON数据的生成方法、设备及存储介质
  • 基于JSON数据生成架构图谱的方法、装置、设备和存储介质
技术分类

06120112503072