CN113064585B - 一种基于json模式的实时报文接口自动生成方法 - Google Patents

一种基于json模式的实时报文接口自动生成方法 Download PDF

Info

Publication number
CN113064585B
CN113064585B CN202110489159.4A CN202110489159A CN113064585B CN 113064585 B CN113064585 B CN 113064585B CN 202110489159 A CN202110489159 A CN 202110489159A CN 113064585 B CN113064585 B CN 113064585B
Authority
CN
China
Prior art keywords
file
check
data type
json
data
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.)
Active
Application number
CN202110489159.4A
Other languages
English (en)
Other versions
CN113064585A (zh
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.)
CETC 29 Research Institute
Original Assignee
CETC 29 Research Institute
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 CETC 29 Research Institute filed Critical CETC 29 Research Institute
Priority to CN202110489159.4A priority Critical patent/CN113064585B/zh
Publication of CN113064585A publication Critical patent/CN113064585A/zh
Application granted granted Critical
Publication of CN113064585B publication Critical patent/CN113064585B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Communication Control (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于JSON模式的实时报文接口自动生成方法,包括以下步骤:S1,根据传输协议定义数据类型,生成数据结构体;S2,将数据结构体转换成JSON Schema文件;S3,对生成的JSON Schema文件进行校验;S4,将经校验后的JSON Schema文件转化为QTui文件;S5,利用Qtui文件生成静态报文接口。本发明解决了现有技术存在的对接口测试的验证不够直观和充分、从而影响接口开发和联试效率的问题。

Description

一种基于JSON模式的实时报文接口自动生成方法
技术领域
本发明涉及指挥自动化数据处理技术领域,具体是一种基于JSON模式的实时报文接口自动生成方法。
背景技术
随着软件技术的发展以及体系作战的应用,指挥自动化系统的软件规模越来越大,系统设计和模块划分日益复杂,导致系统中的软件配置项CSCI(Computer SoftwareConfiguration Item)越来越多,软件间交互的标准化结构报文接口指数级增加,目前进行标准化结构报文接口验证方法主要是基于时间序列的场景驱动方法。该方法根据预先设置的场景,以仿真时间为基准点,在不同的时刻根据场景预设的目标状态,连续生成实时报文接口。
基于时间序列的场景驱动方法连续发送实时数据报文,对接口测试的验证不够直观和充分,主要表现在数据组织与显示存在时间差,无法通过静态方式查看模拟器当前发送的数据要素与实际显示的数据要素是否一致;对构造的实时数据报文在数据组织时无法进行自校验;对于字典较多的实时数据报文,对于字典较多的数据要素不便于测试,无法做到接口穷尽测试。
发明内容
为克服现有技术的不足,本发明提供了一种基于JSON模式的实时报文接口自动生成方法,解决现有技术存在的对接口测试的验证不够直观和充分、从而影响接口开发和联试效率的问题。
本发明解决上述问题所采用的技术方案是:
一种基于JSON模式的实时报文接口自动生成方法,包括以下步骤:
S1,根据传输协议定义数据类型,生成数据结构体;
S2,将数据结构体转换成JSON Schema文件;
S3,对生成的JSON Schema文件进行校验;
S4,将经校验后的JSON Schema文件转化为QTui文件;
S5,利用Qtui文件生成静态报文接口。
本发明首先对传输协议进行字典理解,形成基于基本数据类型的结构体定义方法,生成数据结构体;然后按照分析的基本数据类型,形成数据结构体;然后将数据结构体转换成JSON Schema文件;然后对JSON Schema文件进行校验,形成的JSON Schema文件具备接口自校验能力,在构造数据时直接按照文件模板实现数据校验;然后将JSON Schema文件转化为QTui文件,该文件是根据传输协议,对协议中的各字段进行了自校验,对枚举类型进行了数据初始化的静态界面;然后形成根据传输协议的静态报文接口,该静态报文接口覆盖传输协议全部要素;最后利用Qtui文件生成静态报文接口,该静态报文接口覆盖传输协议全部要素。
本发明提出了一种基于JSON(JavaScript Object Notation,JS对象简谱)模式的实时报文接口自动生成方法,利用JSON丰富的校验格式语言进行接口生成,提高指挥自动化信息系统的接口开发和联试效率。本发明可以实现快速时间接口生成,便捷性、直观性和扩展性比较高。本发明解决了现有技术存在的对接口测试的验证不够直观和充分、从而影响接口开发和联试效率的问题。
作为一种优选的技术方案,步骤S1生成的数据结构体为C++结构体、C结构体、Java结构体或c#结构体。
以上几种结构通用性强,运用广泛,使本发明的使用场景广泛。
作为一种优选的技术方案,步骤S1中采用以下方式的一种或多种定义数据类型:
将数据类型char、unsigned char、short、unsigned short、int、unsigned int、enum作为整型数据类型;
将数据类型double、float作为浮点数数据类型;
将数据类型char[]作为字符串数据类型;
将数据类型list类型作为数组数据类型;
将数据类型struct作为对象数据类型。
通过以上数据类型的定义方式,便于实现基本数据类型的结构体定义。
作为一种优选的技术方案,步骤S2包括以下步骤:
S21,将步骤S1生成的数据结构体的关键字转换为JSON模式的关键字;
S22,将步骤S1生成的数据结构体的数据类型转换为JSON模式的数据类型;
S23,将JSON模式的关键字、JSON模式的数据类型按照JSON Schema格式生成JSONSchema文件。
通过以上步骤,便实现了将数据结构体的关键字、数据类型进行转换,从而生成JSON Schema文件。
作为一种优选的技术方案,步骤S22中,采用以下方式的一种或多种将数据结构体的数据类型转换为JSON模式的数据类型:
将数据类型char、unsigned char、short、unsigned short、int、unsigned int、enum转换为JSON模式的integer数据类型;
将数据类型double、float转换为JSON模式的number数据类型;
将数据类型char[]转换为JSON模式的string数据类型;
将数据类型list转换为JSON模式的array数据类型;
将数据类型struct转换为JSON模式的object数据类型。
通过以上步骤,便实现了将数据结构体的数据类型转换为对应的JSON的数据类型。
作为一种优选的技术方案,步骤S3所述校验包括语义校验和/或语法校验。
作为一种优选的技术方案,所述语义校验包括字符串实例校验、数值实例校验、正则表达式匹配校验、相互依存关键字校验、缺省值校验、有效值校验、条件校验、默认值校验的一种或多种。
作为一种优选的技术方案,所述语法校验包括最小值校验、最大值校验、长度校验、唯一性校验、数组边界校验、枚举范围校验、依赖校验的一种或多种。
作为一种优选的技术方案,步骤S3中,采用以下方式的一种或多种对生成的JSONSchema文件进行校验:
对integer数据类型进行最小值校验和/或最大值校验;
对string数据类型进行长度校验和/或正则表达式校验;
对array数据类型进行唯一性校验和/或数组边界校验;
对enum数据类型进行枚举范围校验;
对object数据类型进行依赖校验。
通过执行以上技术方案,便实现了对生成的JSON Schema文件的校验,从而对数据进行自校验,使生成的JSON Schema文件具备接口自校验能力,在构造数据时直接按照文件模板实现数据校验。
作为一种优选的技术方案,步骤S4中,采用以下方式的一种或多种将经校验后的JSON Schema文件转化为QTui文件:
将JSON Schema文件的type数据类型文件转换为QTui文件的QLineEdit类型控件;
将JSON Schema文件的title数据类型文件转换为QTui文件的QLabel类型控件;
将JSON Schema文件的description数据类型文件转换为QTui文件的QLabel类型控件;
将JSON Schema文件的enum数据类型文件转换为QTui文件的QComboBox类型控件;
将JSON Schema文件的object数据类型文件转换为QTui文件的QGroupBox和QListView类型控件;
将JSON Schema文件的$ref数据类型文件转换为QTui文件的QGroupBox类型控件。
经过上述步骤后形成QTui文件,该文件是根据传输协议,对协议中的各字段进行了自校验,对枚举类型进行了数据初始化的静态界面,便于后续生成根据传输协议的覆盖传输协议全部要素的静态报文接口。
本发明相比于现有技术,具有以下有益效果:
(1)本发明提出了一种基于JSON(JavaScript Object Notation,JS对象简谱)模式的实时报文接口自动生成方法,利用JSON丰富的校验格式语言进行接口生成,提高指挥自动化信息系统的接口开发和联试效率;可以实现快速时间接口生成,便捷性、直观性和扩展性比较高;本发明解决了现有技术存在的对接口测试的验证不够直观和充分、从而影响接口开发和联试效率的问题;
(2)本发明步骤S1生成的数据结构体为C++结构体、C结构体、Java结构体或c#结构体,通用性强,运用广泛,使本发明的使用场景广泛;
(3)本发明便于实现基本数据类型的结构体定义;
(4)本发明实现了将数据结构体的关键字、数据类型进行转换,从而生成JSONSchema文件;
(5)本发明实现了将数据结构体的数据类型转换为对应的JSON的数据类型;
(6)本发明实现了对生成的JSON Schema文件的校验,从而对数据进行自校验,使生成的JSON Schema文件具备接口自校验能力,在构造数据时直接按照文件模板实现数据校验;
(7)本发明形成QTui的文件是根据传输协议,对协议中的各字段进行了自校验,对枚举类型进行了数据初始化的静态界面,便于后续生成根据传输协议的覆盖传输协议全部要素的静态报文接口。
附图说明
图1为本发明所述方法的步骤图;
图2为本发明实施例3的流程图;
图3为本发明实施例3的生成C++结构体的代码图;
图4为本发明实施例3的生成JSON Schema文件的代码图;
图5为本发明实施例3的生成带有校验信息的JSON Schema文件的代码图;
图6为本发明实施例3的生成QTui文件的代码图;
图7为本发明实施例3的自动生成的目标基本信息接口界面;
图8为本发明实施例3的自动生成的基于$ref引用的日期时间接口界面。
具体实施方式
下面结合实施例及附图,对本发明作进一步的详细说明,但本发明的实施方式不限于此。
实施例1
如图1至图8所示,一种基于JSON模式的实时报文接口自动生成方法,包括以下步骤:
S1,根据传输协议定义数据类型,生成数据结构体;
S2,将数据结构体转换成JSON Schema文件;
S3,对生成的JSON Schema文件进行校验;
S4,将经校验后的JSON Schema文件转化为QTui文件;
S5,利用Qtui文件生成静态报文接口。
本发明首先对传输协议进行字典理解,形成基于基本数据类型的结构体定义方法,生成数据结构体;然后按照分析的基本数据类型,形成数据结构体;然后将数据结构体转换成JSON Schema文件;然后对JSON Schema文件进行校验,形成的JSON Schema文件具备接口自校验能力,在构造数据时直接按照文件模板实现数据校验;然后将JSON Schema文件转化为QTui文件(Qt中的ui文件),该文件是根据传输协议,对协议中的各字段进行了自校验,对枚举类型进行了数据初始化的静态界面;然后形成根据传输协议的静态报文接口,该静态报文接口覆盖传输协议全部要素;最后利用Qtui文件生成静态报文接口,该静态报文接口覆盖传输协议全部要素。
本发明提出了一种基于JSON(JavaScript Object Notation,JS对象简谱)模式的实时报文接口自动生成方法,利用JSON丰富的校验格式语言进行接口生成,提高指挥自动化信息系统的接口开发和联试效率。本发明可以实现快速时间接口生成,便捷性、直观性和扩展性比较高。本发明解决了现有技术存在的对接口测试的验证不够直观和充分、从而影响接口开发和联试效率的问题。
作为一种优选的技术方案,步骤S1生成的数据结构体为C++结构体、C结构体、Java结构体或c#结构体。
以上几种结构通用性强,运用广泛,使本发明的使用场景广泛。
作为一种优选的技术方案,步骤S1中采用以下方式的一种或多种定义数据类型:
将数据类型char、unsigned char、short、unsigned short、int、unsigned int、enum作为整型数据类型;
将数据类型double、float作为浮点数数据类型;
将数据类型char[]作为字符串数据类型;
将数据类型list类型作为数组数据类型;
将数据类型struct作为对象数据类型。
通过以上数据类型的定义方式,便于实现基本数据类型的结构体定义。
作为一种优选的技术方案,步骤S2包括以下步骤:
S21,将步骤S1生成的数据结构体的关键字转换为JSON模式的关键字;
S22,将步骤S1生成的数据结构体的数据类型转换为JSON模式的数据类型;
S23,将JSON模式的关键字、JSON模式的数据类型按照JSON Schema格式生成JSONSchema文件。
通过以上步骤,便实现了将数据结构体的关键字、数据类型进行转换,从而生成JSON Schema文件。
作为一种优选的技术方案,步骤S22中,采用以下方式的一种或多种将数据结构体的数据类型转换为JSON模式的数据类型:
将数据类型char、unsigned char、short、unsigned short、int、unsigned int、enum转换为JSON模式的integer数据类型;
将数据类型double、float转换为JSON模式的number数据类型;
将数据类型char[]转换为JSON模式的string数据类型;
将数据类型list转换为JSON模式的array数据类型;
将数据类型struct转换为JSON模式的object数据类型。
通过以上步骤,便实现了将数据结构体的数据类型转换为对应的JSON的数据类型。
作为一种优选的技术方案,步骤S3所述校验包括语义校验和/或语法校验。
作为一种优选的技术方案,所述语义校验包括字符串实例校验、数值实例校验、正则表达式匹配校验、相互依存关键字校验、缺省值校验、有效值校验、条件校验、默认值校验的一种或多种。
作为一种优选的技术方案,所述语法校验包括最小值校验、最大值校验、长度校验、唯一性校验、数组边界校验、枚举范围校验、依赖校验的一种或多种。
作为一种优选的技术方案,步骤S3中,采用以下方式的一种或多种对生成的JSONSchema文件进行校验:
对integer数据类型进行最小值校验和/或最大值校验;
对string数据类型进行长度校验和/或正则表达式校验;
对array数据类型进行唯一性校验和/或数组边界校验;
对enum数据类型进行枚举范围校验;
对object数据类型进行依赖校验。
通过执行以上技术方案,便实现了对生成的JSON Schema文件的校验,从而对数据进行自校验,使生成的JSON Schema文件具备接口自校验能力,在构造数据时直接按照文件模板实现数据校验。
作为一种优选的技术方案,步骤S4中,采用以下方式的一种或多种将经校验后的JSON Schema文件转化为QTui文件:
将JSON Schema文件的type数据类型文件转换为QTui文件的QLineEdit类型控件;
将JSON Schema文件的title数据类型文件转换为QTui文件的QLabel类型控件;
将JSON Schema文件的description数据类型文件转换为QTui文件的QLabel类型控件;
将JSON Schema文件的enum数据类型文件转换为QTui文件的QComboBox类型控件;
将JSON Schema文件的object数据类型文件转换为QTui文件的QGroupBox和QListView类型控件;
将JSON Schema文件的$ref数据类型文件转换为QTui文件的QGroupBox类型控件。
经过上述步骤后形成QTui文件,该文件是根据传输协议,对协议中的各字段进行了自校验,对枚举类型进行了数据初始化的静态界面,便于后续生成根据传输协议的覆盖传输协议全部要素的静态报文接口。
实施例2
如图1至图8所示,在实施例1的基础上,本实施例提供一种更为细化的实施例:
一种基于JSON模式的实时报文接口自动生成方法,利用JSON丰富的校验格式语言进行定制化开发,生成包括用户输入检查或验证的数据;主要包括以下步骤:
1.Step1:根据标准协议定义C++结构体,主要包括如下几步:
1)对传输协议进行字典理解,形成基于基本数据类型的结构体定义方法;
2)以char/unsigned char/short/unsigned short/int/unsigned int/enum等类型作为整型类型;
3)以double/float等类型作为浮点数类型;
4)以char[]类型作为字符串类型;
5)以list类型作为数据类型;
6)以基础数据类型组成的复合类型struct作为符合类型。
2.Step2:按照第一步方式分析的基本数据类型,形成C++结构体;
3.Step3:将第二步的C++结构体转换为JSON Schema文件,主要包括如下几步:
1)根据JSON协议生成关键字;
2)将char/unsigned char/short/unsigned short/int/unsigned int/enum等类型对应转换为JSON的integer类型;
3)将char[]类型对应转换为JSON的string类型;
4)将double/float等类型对应转换为JSON的number类型;
5)将list类型转换为JSON的array类型;
6)将符合类型转换为JSON的object类型;
7)按照JSON Schema格式生成JSON Schema文件。
4.Step4:对第三步的JSON Schema文件进行关键字校验,实现数据进行自校验主要包括如下几步:
1)integer类型根据minimun和maxnum进行最小值和最大值范围校验;
2)string类型根据minilength和maxlength进行长度校验,根据pattern实现正则表达式校验;
3)array类型根据uniqueItems实现唯一性校验,根据maxItems和minItems实现数组边界校验;
4)enum枚举类型进行范围校验,并列出具体的枚举值,实现字典类型动态调整;
5)object类型采用$ref方式实现,对里面的元素重复进行如1)、2)、3)、4)几个步骤的校验方式;
6)采用if*then*else方式,进行依赖校验。
经过该步骤后形成的JSON Schema文件具备接口自校验能力,在构造数据时直接按照文件模板实现数据校验。
5.Step5:对第四步生成的文件进行QTui文件转换,主要包括以下几步:
1)对JSON Schema文件的type类型,对应转换为QLineEdit类型控件;
2)对JSON Schema文件的title类型,对应转换为QLabel类型控件;
3)对JSON Schema文件的description类型,对应转换为QLabel类型控件;
4)对JSON Schema文件的enum类型,对应转换为QComboBox类型控件;
5)对JSON Schema文件的object类型,对应转换为QGroupBox和QListView类型控件;
6)对JSON Schema文件的$ref类型;对应转换为QGroupBox类型控件。
经过上述步骤后形成QTui文件,该文件是根据传输协议,对协议中的各字段进行了自校验,对枚举类型进行了数据初始化的静态界面
6.Step6:利用QtCreator将第五步的UI文件生成静态接口
将第五步的UI文件导入QtCreator中,形成根据传输协议的静态报文接口,该静态报文接口覆盖传输协议全部要素。
本发明实现了一种基于JSON模式的实时报文接口自动生成方法,提高指挥自动化系统的接口开发与联试效率,与传统的基于时间序列的场景驱动方法相比较:基于时间序列的场景驱动方法适合数据连续发送的场景模拟,接口生成不直观;而本发明所述方法可以快速时间接口生成,便捷性、直观性和扩展性比较高。
实施例3
如图1至图8所示,在实施例1、实施例2的基础上,本实施例提供另一种细化的实施例:
本发明基于JSON模式的实时报文接口自动生成方法,可快速生成验证接口以目标属性为例,流程图如图2所示,以C++结构体为例,具体实施情况如以下步骤:
1)根据传输协议分析目标属性;
目标属性主要包括目标编号、目标型号、时间、平台类型、目标属性等数据要素,其中目标编号为整型;目标型号为字符串;时间为符合类型(含年月日、时分秒,单个要素均为整型);平台类型为字典,枚举类型;目标属性为字典,枚举类型。
2)生成C++结构体;
根据第一步的分析,形成C++结构体格式,如图3所示,生成基本属性结构体。
3)生成JSON Schema文件;
对第二步的C++结构体按照JSON关键字进行转换,生成如下JSON Schema文件,如图4所示,自动生成目标基本信息接口及基于$ref引用的日期时间接口。
4)生成带有校验信息的JSON Schema文件;
基于校验规则,生成完成校验和字典初始化的JSON Schema文件,如下图5所示,自动校验目标基本信息接口及基于$ref引用的日期时间接口。
5)生成QTui文件;
利用第四步经过校验后生成的QTui文件,如下图6所示,生成的QTui文件。
6)导入QtCreator自动生成接口。
将第5)步生成的QTui文件导入QtCreator,生成的实时报文接口如下图7、图8所示,图7、图8分别为自动生成的目标基本信息接口界面及基于$ref引用的日期时间接口界面。该接口包含所有数据要素,并自动进行数据项校验,不需要在应用中手写代码强制校验。
如上所述,可较好地实现本发明。
本说明书中所有实施例公开的所有特征,或隐含公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合和/或扩展、替换。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,依据本发明的技术实质,在本发明的精神和原则之内,对以上实施例所作的任何简单的修改、等同替换与改进等,均仍属于本发明技术方案的保护范围之内。

Claims (6)

1.一种基于JSON模式的实时报文接口自动生成方法,其特征在于,包括以下步骤:
S1,根据传输协议定义数据类型,生成数据结构体;
S2,将数据结构体转换成JSON Schema文件;
S3,对生成的JSON Schema文件进行校验;
S4,将经校验后的JSON Schema文件转化为QTui文件;
S5,利用Qtui文件生成静态报文接口;
步骤S1中采用以下方式的一种或多种定义数据类型:
a.将数据类型char、unsigned char、short、unsigned short、int、
unsigned int、enum作为整型数据类型;
b.将数据类型double、float作为浮点数数据类型;
c.将数据类型char[]作为字符串数据类型;
d.将数据类型list类型作为数组数据类型;
e.将数据类型struct作为对象数据类型;
步骤S2包括以下步骤:
S21,将步骤S1生成的数据结构体的关键字转换为JSON模式的关键字;
S22,将步骤S1生成的数据结构体的数据类型转换为JSON模式的数据类型;
S23,将JSON模式的关键字、JSON模式的数据类型按照JSON Schema格式生成JSONSchema文件;
步骤S22中,采用以下方式的一种或多种将数据结构体的数据类型转换为JSON模式的数据类型:
f.将数据类型char、unsigned char、short、unsigned short、int、unsigned int、enum转换为JSON模式的integer数据类型;
g.将数据类型double、float转换为JSON模式的number数据类型;
h.将数据类型char[]转换为JSON模式的string数据类型;
i.将数据类型list转换为JSON模式的array数据类型;
j.将数据类型struct转换为JSON模式的object数据类型;
步骤S4中,采用以下方式的一种或多种将经校验后的JSON Schema文件转化为QTui文件:
p.将JSON Schema文件的type数据类型文件转换为QTui文件的QLineEdit类型控件;
q.将JSON Schema文件的title数据类型文件转换为QTui文件的QLabel类型控件;
r.将JSON Schema文件的description数据类型文件转换为QTui文件的QLabel类型控件;
s.将JSON Schema文件的enum数据类型文件转换为QTui文件的QComboBox类型控件;
t.将JSON Schema文件的object数据类型文件转换为QTui文件的QGroupBox和QListView类型控件;
u.将JSON Schema文件的$ref数据类型文件转换为QTui文件的QGroupBox类型控件。
2.根据权利要求1所述的一种基于JSON模式的实时报文接口自动生成方法,其特征在于,步骤S1生成的数据结构体为C++结构体、C结构体、Java结构体或c#结构体。
3.根据权利要求1或2所述的一种基于JSON模式的实时报文接口自动生成方法,其特征在于,步骤S3所述校验包括语义校验和/或语法校验。
4.根据权利要求3所述的一种基于JSON模式的实时报文接口自动生成方法,其特征在于,所述语义校验包括字符串实例校验、数值实例校验、正则表达式匹配校验、相互依存关键字校验、缺省值校验、有效值校验、条件校验、默认值校验的一种或多种。
5.根据权利要求3所述的一种基于JSON模式的实时报文接口自动生成方法,其特征在于,所述语法校验包括最小值校验、最大值校验、长度校验、唯一性校验、数组边界校验、枚举范围校验、依赖校验的一种或多种。
6.根据权利要求1或2所述的一种基于JSON模式的实时报文接口自动生成方法,其特征在于,步骤S3中,采用以下方式的一种或多种对生成的JSON Schema文件进行校验:
k.对integer数据类型进行最小值校验和/或最大值校验;
l.对string数据类型进行长度校验和/或正则表达式校验;
m.对array数据类型进行唯一性校验和/或数组边界校验;
n.对enum数据类型进行枚举范围校验;
o.对object数据类型进行依赖校验。
CN202110489159.4A 2021-04-30 2021-04-30 一种基于json模式的实时报文接口自动生成方法 Active CN113064585B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110489159.4A CN113064585B (zh) 2021-04-30 2021-04-30 一种基于json模式的实时报文接口自动生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110489159.4A CN113064585B (zh) 2021-04-30 2021-04-30 一种基于json模式的实时报文接口自动生成方法

Publications (2)

Publication Number Publication Date
CN113064585A CN113064585A (zh) 2021-07-02
CN113064585B true CN113064585B (zh) 2023-04-11

Family

ID=76568413

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110489159.4A Active CN113064585B (zh) 2021-04-30 2021-04-30 一种基于json模式的实时报文接口自动生成方法

Country Status (1)

Country Link
CN (1) CN113064585B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102981861A (zh) * 2012-12-12 2013-03-20 上海航天测控通信研究所 一种基于Qt的自定义控件的使用方法
CN105739984A (zh) * 2016-01-29 2016-07-06 中国人民解放军63811部队 一种基于Qt的高可维护性数据显示框架
CN105808646A (zh) * 2016-02-26 2016-07-27 上海全成通信技术有限公司 基于json schema的复杂页面内内容管理校验方法及装置
CN107483467A (zh) * 2017-08-31 2017-12-15 四川长虹电器股份有限公司 面向互联网接口服务的json报文校验方法
CN107797804A (zh) * 2017-11-20 2018-03-13 北京百度网讯科技有限公司 生成前端交互界面的方法和装置
CN108958727A (zh) * 2018-04-13 2018-12-07 北京优帆科技有限公司 一种api客户端代码的生成方法及系统
CN111158687A (zh) * 2019-12-31 2020-05-15 奇安信科技集团股份有限公司 Java插件的界面生成方法、装置、计算机设备和存储介质
CN111522553A (zh) * 2020-04-03 2020-08-11 京东数字科技控股有限公司 一种数据处理方法、装置、电子设备及存储介质
US10789532B1 (en) * 2019-10-29 2020-09-29 Capital One Services, Llc Computer-based systems configured for detecting and splitting data types in a data file and methods of use thereof

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10803029B2 (en) * 2017-12-19 2020-10-13 Salesforce.Com, Inc. Generating javascript object notation (JSON) schema from JSON payloads

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102981861A (zh) * 2012-12-12 2013-03-20 上海航天测控通信研究所 一种基于Qt的自定义控件的使用方法
CN105739984A (zh) * 2016-01-29 2016-07-06 中国人民解放军63811部队 一种基于Qt的高可维护性数据显示框架
CN105808646A (zh) * 2016-02-26 2016-07-27 上海全成通信技术有限公司 基于json schema的复杂页面内内容管理校验方法及装置
CN107483467A (zh) * 2017-08-31 2017-12-15 四川长虹电器股份有限公司 面向互联网接口服务的json报文校验方法
CN107797804A (zh) * 2017-11-20 2018-03-13 北京百度网讯科技有限公司 生成前端交互界面的方法和装置
CN108958727A (zh) * 2018-04-13 2018-12-07 北京优帆科技有限公司 一种api客户端代码的生成方法及系统
US10789532B1 (en) * 2019-10-29 2020-09-29 Capital One Services, Llc Computer-based systems configured for detecting and splitting data types in a data file and methods of use thereof
CN111158687A (zh) * 2019-12-31 2020-05-15 奇安信科技集团股份有限公司 Java插件的界面生成方法、装置、计算机设备和存储介质
CN111522553A (zh) * 2020-04-03 2020-08-11 京东数字科技控股有限公司 一种数据处理方法、装置、电子设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Antonella Galizia等.Json-GUI—A module for the dynamic generation of form-based web interfaces.SoftwareX.2018,第9卷第28-34页. *
刘晓锋 等."基于MQTT基于MQTT协议的天基网络监视服务设计与实现".现代计算机(专业版).2018,(第 17 期),第71-74页. *

Also Published As

Publication number Publication date
CN113064585A (zh) 2021-07-02

Similar Documents

Publication Publication Date Title
CN102880468B (zh) 一种用于ecu程序开发的代码智能提示方法及其系统
CN104391934B (zh) 数据校验方法和装置
US10198422B2 (en) Information-processing equipment based on a spreadsheet
CN107577607A (zh) 用户界面自动化测试方法、装置、电子设备、存储介质
CN103605518A (zh) 对象反序列化方法和装置
CN113778449B (zh) 航空电子接口数据适配转换系统
CN106292639B (zh) 一种通用伺服系统性能测试平台
CN111694547A (zh) 一种基于数据状态变化的自动编码数据处理应用设计工具
CN111966738B (zh) 一种通过选择前端配置自动实现后端编程的系统
CN112560151A (zh) 一种基于资源描述框架的bim模型智能审核方法及系统
CN111581920A (zh) 文档转换方法、装置、设备及计算机存储介质
CN106325860B (zh) 一种航天嵌入式软件接口数据的自动化维护方法
CN110515827A (zh) 自动化测试方法、装置、计算机设备及存储介质
CN104965781A (zh) 一种生成测试用例的方法及装置
CN104361040A (zh) 一种定制查询的方法及装置
CN107579976A (zh) 自定义检测网站敏感信息的方法及装置
CN113064585B (zh) 一种基于json模式的实时报文接口自动生成方法
CN108170466B (zh) 一种基于程序合成的c/c++程序缺陷自动修复方法
CN101673200B (zh) 用户输入模型的检测方法及装置
CN105279032A (zh) 一种同步接口报文与javaBean的方法及装置
CN106033338A (zh) 基于fog数据的源代码导入及解析的方法和装置
CN112988120B (zh) Ada语言用卫星遥测下行调度参数动态在线装订方法及系统
CN109714225A (zh) 一种Elink的自动化测试方法及系统
CN113239016B (zh) 数据库设计辅助装置和方法
CN103853660A (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
GR01 Patent grant
GR01 Patent grant