CN111562907A - 自定义接口数据的转换方法与系统 - Google Patents
自定义接口数据的转换方法与系统 Download PDFInfo
- Publication number
- CN111562907A CN111562907A CN202010272809.5A CN202010272809A CN111562907A CN 111562907 A CN111562907 A CN 111562907A CN 202010272809 A CN202010272809 A CN 202010272809A CN 111562907 A CN111562907 A CN 111562907A
- Authority
- CN
- China
- Prior art keywords
- json
- key
- java
- data
- key value
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种自定义接口数据的转换方法,包括:接收接口数据,将所述接口数据转化为json对象,所述接口数据包括应用程序接口的自定义数据;通过java反射机制,获取所述json对象对应的java对象中的属性数据,所述属性数据包括java对象的键名及键值;判断所述json对象的键名与所述java对象的键名是否匹配;若所述json对象的键名与所述java对象的键名匹配,将所述json对象写入所述java对象;若所述json对象的键名与所述java对象的键名不匹配,将所述json对象的键名和键值放置于所述java对象的自定义扩展字段中。本发明的有益效果在于:可以提高数据转换识别的准确性。
Description
技术领域
本发明实施例涉及数据处理领域,尤其涉及一种自定义接口数据的转换方法与系统。
技术背景
在目前客户端的基于java的应用系统中,前端和后端的数据传输使用的是应用程序接口。传统的应用程序接口的定义是由前端开发人员和后端开发人员一起定义的,而对于现有的项目来说,应用程序接口是由用户定义的,或者说应用程序接口的数据是由用户定义的。自定义数据由“应用程序接口数据由用户定义”和/或基础数据(即元数据)这两类数据组成。元数据是系统事先定义好的数据,是不可修改,不可删除的;自定义数据是由用户创建的数据,是可以修改,可以删除的数据。由于自定义数据的自由度就比较宽泛,从而导致了应用程序接口的数据定义就比较“天马行空”,计算机进行识别时容易出错,识别不准确。
发明内容
有鉴于此,本发明实施例的目的是提供一种自定义接口数据的转换方法与系统,可以提高数据转换识别的准确性。
为实现上述目的,本发明实施例提供了自定义接口数据的转换方法,包括:
接收接口数据,将所述接口数据转化为json对象,所述接口数据包括应用程序接口的自定义数据;
通过java反射机制,获取所述json对象对应的java对象中的属性数据,所述属性数据包括java对象的键名及键值;
判断所述json对象的键名与所述java对象的键名是否匹配;
若所述json对象的键名与所述java对象的键名匹配,将所述json对象写入所述java对象;
若所述json对象的键名与所述java对象的键名不匹配,将所述json对象的键名和键值放置于所述java对象的自定义扩展字段中。
进一步地,接收接口数据,将所述接口数据转化为json对象包括:
通过json数据编辑器,以属性作为键名以及以属性值作为键值,将所述接口数据以json数据的形式写入json文件中;
获取所述json文件中的json数据,并将所述json文件的所述json数据进行实例化,得到json对象。
进一步地,若所述json对象的键名与所述java对象的键名匹配,将所述json对象写入所述java对象包括:
若所述json对象的键名与所述java对象的键名匹配,判断所述java对象的键名的字段类型是否为基础类型;
若是,获取所述java对象写权限,将所述json对象的键值的字段写入所述java对象的键值的字段中。
进一步地,判断所述java对象的键名的字段类型是否为基础类型之后,还包括:
若所述json对象的键名与所述java对象的键名不匹配,则查询所述json对象的键值的字段类型;
若所述json对象的键值的字段类型是java对象的键值的字段类型,将所述json对象的键值的字段类型作为所述java对象的键值的字段类型,并将所述json对象的键值的字段作为java对象的键值的字段;
若所述json对象的键值的字段类型为list,则循环读取所述json对象中的子对象的键值,当所述json对象的键值与所述子对象的键值一致时,将所述json对象的键值写入java对象。
为实现上述目的,本发明实施例还提供了一种自定义接口数据的转换系统,包括:
转化模块,用于接收接口数据,将所述接口数据转化为json对象,所述接口数据包括应用程序接口的自定义数据;
获取模块,用于通过java反射机制,获取所述json对象对应的java对象中的property数据,所述property数据包括java对象的键名及键值;
判断模块,用于判断所述json对象的键名与所述java对象的键名是否匹配;
第一执行模块,用于若所述json对象的键名与所述java对象的键名匹配,将所述json对象写入所述java对象;
第二执行模块,用于若所述json对象的键名与所述java对象的键名不匹配,将所述json对象的键名和键值放置于所述java对象的自定义扩展字段中。
进一步地,所述转化模块还用于:
通过json数据编辑器,以属性作为键名以及以属性值作为键值,将所述接口数据以json数据的形式写入json文件中;
获取所述json文件中的json数据,并将所述json文件的所述json数据进行实例化,得到Json对象。
进一步地,所述第一执行模块还用于:
若所述json对象的键名与所述java对象的键名匹配,判断所述java对象的键名的字段类型是否为基础类型;
若是,获取所述java对象写权限,将所述json对象的value字段写入所述java对象中。
进一步地,所述第一执行模块还用于:
若所述json对象的键名与所述java对象的键名不匹配,则查询所述json对象的键值的字段类型;
若所述json对象的键值的字段类型是java对象的键值的字段类型,将所述json对象的键值的字段类型作为所述java对象的键值的字段类型,并将所述json对象的键值的字段作为java对象的键值的字段;
若所述json对象的键值的字段类型为list,则循环读取所述json对象中的子对象的键值,当所述json对象的键值与所述子对象的键值一致时,将所述json对象的键值写入java对象。
为实现上述目的,本发明实施例还提供了一种计算机设备,所述计算机设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的自定义接口数据的转换方法的步骤。
为实现上述目的,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行上所述的自定义接口数据的转换方法的步骤。
本发明实施例提供的自定义接口数据的转换方法与系统,通过对待传输的json数据进行解析,得到json对象,通过java反馈机制获取java对象key名及key名的类型、value值及value值的类型;json对象与java对象分别对key名及key名的类型进行对比,可以直接区分大小写,因为接口数据中不仅包含自定义数据,也包含元数据,故从大小写上也可以定义和元数据意义相同的字段。
附图说明
图1为本发明自定义接口数据的转换方法实施例一的流程图。
图2为本发明实施例一中步骤S100的流程图。
图3为本发明实施例一中步骤S106的流程图。
图4为本发明实施例一中步骤S106A的流程图。
图5为本发明自定义接口数据的转换系统实施例二的程序模块示意图。
图6为本发明计算机设备实施例三的硬件结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
参阅图1,示出了本发明实施例一之自定义接口数据的转换方法的步骤流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备2为执行主体进行示例性描述。具体如下。
步骤S100,接收接口数据,将所述接口数据转化为json对象,所述接口数据包括应用程序接口的自定义数据。
具体地,所述接口数据即json数据,所述json数据可以以json文件的方式进行存储。json文件以ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)编码方式存储,不依赖于操作系统,能被计算机程序快速的读取或生成,是一种常用的数据交换格式。
其中,ASCII是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,是现今最通用的单字节编码系统。
示例性地,参阅图2,所述步骤S100进一步包括:
步骤S100A,通过json数据编辑器,以属性作为键名以及以属性值作为键值,将所述接口数据以json数据的形式写入json文件中。
具体地,可以通过json数据生成器将接口数据转换成json数据的形式,也可预先对接口数据进行以json数据的格式进行编写。json数据由键值对(key-value)组成,一个键值对包括一个键名和与该键名对应的键值。一条json数据包括至少一个键值对;键名与键值之间通过冒号分开;每个键值对以逗号结束;键名需加引号;若键值是字符型数据则加引号,非字符型数据不加引号;一条json数据中可以有子json数据,子json数据中的各数据以左中括号作为开始,右中括号作为结束。json文件以左大括号作为文件开始、右大括号作为文件结束,子json数据以左大括号作为子json数据的开始、右大括号作为子json数据的结束。
将json数据实例化成json对象,即创建新的对象,以json数据作为输入的数据流,对新建的对象进行赋值的过程;json对象是对新建的、且实例化后的对象的通称。
举例来说,一个关于学生信息的json文件可以表示如下:
实例化是指在面向对象的编程中,创建对象的过程。对象是面向对象编程中数据存储和处理的基本单位,对象包括属性名和方法。
步骤S100B,获取所述json文件中的json数据,并将所述json文件的所述json数据进行实例化,得到json对象。
具体地,将json数据进行反序列化可以通过调用Java内部自带函数,也可以使用现成的第三方工具,如JSON-LIB,阿里公司的FastJson,谷歌公司的Gson,开源的Jackson等。
仍以关于学生信息的json文件为例,通过调用java内部自带函数或第三方解析json工具,实例化后的json对象为一个学生对象,该对象包括的属性与json文件中键名一一对应,包括“学生姓名”、“年龄”、“班级”;该对象还包括一个子对象“期中成绩”,子对象的属性包括“语文”和“数学”。学生对象的属性值与json文件中键值一一对应。
步骤S102,通过java反射机制,获取所述json对象对应的java对象中的属性数据,所述属性数据包括java对象的键名及键值。
具体地,java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。获取到java对象之后可以创建实例,查看源码可以知道java对象的属性信息。java的反射机制是根据java对象的键名,可以说是属性名(key名),获取键值,也可说是属性值(value值)。所述属性数据(property数据)还包括字段的类型、名称、对外发布的获取方法、对外发布的赋值方法。
步骤S104,判断所述json对象的键名与所述java对象的键名是否匹配。
具体地,即,判断json对象的key名与java对象的key名是否匹配,json对象的key名与java对象的key名的拼写、大小写等信息是否匹配,若拼写、大小写等信息完全一致,则表示json对象的key名与java对象的key名匹配。
步骤S106,若所述json对象的键名与所述java对象的键名匹配,将所述json对象写入所述java对象。
具体地,将json对象写入java对象之前,对json对象的键名与以及键值与先java对象的键名与以及键值进行判断,确定使用哪种方式进行写入。
示例性地,参阅图3,所述步骤S106进一步包括:
步骤S106A,若所述json对象的键名与所述java对象的键名匹配,判断所述java对象的键名的字段类型是否为基础类型。
具体地,基础类型即定义在jre(java框架提供)中的类型,例如String,Integer,BigDecimal等类型。利用扩展类加载器或者应用类加载器引用java对象的key名的字段类型。所以,判断java中的类型是否是基础类型,即获取类的类加载器(负责动态加载Java类到Java虚拟机的内存空间中),如果获取不到,则认为是基础类型。或者可以,直接将对象强转给任意一个类型,如果转换成功,则可以确定,如果不成功,在异常提示中可以确定类型。
示例性地,参阅图4,所述步骤S106A之后还包括:
步骤S106A1,若所述json对象的键名与所述java对象的键名不匹配,则查询所述json对象的键值的字段类型。
具体地,json对象数组的结构复杂,通过对java对象的value值的字段类型进行判断,确定是否为所需要所述java对象的value值的字段类型,进一步调用工具类重写java对象。
步骤S106A2,若所述json对象的键值的字段类型是java对象的键值的字段类型,将所述json对象的键值的字段类型作为所述java对象的键值的字段类型,并将所述json对象的键值的字段作为java对象的键值的字段。
具体地,若json对象的键值的字段类型是java对象,则把该字段类型作为java对象,json字段的value作为新的json对象,递归调用工具类进行数据写入。
步骤S106A3,若所述json对象的键值的字段类型为list,则循环读取所述json对象中的子对象的键值,当所述json对象的键值与所述子对象的键值一致时,将所述json对象的键值写入java对象。
具体地,递归调用工具类,得到所述json对象的value值,写入所述java对象的value值的字段中。例如:{“personName”:”小明”,”parent”:[{“father”:”大明”,”eage”:”60”},{“mother”:”小芳”,”eage”:”50”}]},对parent进行list,循环读取里面的value值的father的字段信息与mother信息,就是list的递归调用。循环读取json对象的value值时,由于json对象的结构具有多样性,有一层结构,例如:{“personName”:”小明”};或者嵌套的结构,例如:{“personName”:”小明”,”parent”:{“father”:”大明”,”eage”:”60”}}。因此,当读到parent的时候,parent是一个对象,里面有father和eage两个value值,不确定需要的是哪个value值时,即可使用递归调用。在当为嵌套结构时,使用递归调用循环parent,循环里面了的两个value值之后,再循环外层。只有当value值的字段一致时,调用json对象的键值,并将json对象的键值写入java对象。
步骤S106B,若是,获取所述java对象写权限,将所述json对象的value字段写入所述java对象中。
具体地,java对象的key名的字段类型是基础类型表示所述java对象可写,不用更改自定义数据。调用函数file.setWritable(boolean);若返回参数为true就是java对象可写,false就是不可写。
步骤S108,若所述json对象的键名与所述java对象的键名不匹配,将所述json对象的键名和键值放置于所述java对象的自定义扩展字段中。
具体地,自定义扩展字段用于承接自定义数据,即java对象的扩展数据,java对象的扩展数据可以为任意数据。可通过自定义数据的定义业务归属,即可以识别是哪个业务的扩展数据,业务归属根据不同的业务人员注册的信息不同进行划分。
实施例二
请继续参阅图5,示出了本发明自定义接口数据的转换系统实施例二的程序模块示意图。在本实施例中,自定义接口数据的转换系统20可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述自定义接口数据的转换方法。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述自定义接口数据的转换系统20在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:
转化模块200,用于接收接口数据,将所述接口数据转化为json对象,所述接口数据包括应用程序接口的自定义数据。
具体地,所述接口数据即json数据,所述json数据可以以json文件的方式进行存储。json文件以ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)编码方式存储,不依赖于操作系统,能被计算机程序快速的读取或生成,是一种常用的数据交换格式。
其中,ASCII是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,是现今最通用的单字节编码系统。
示例性地,所述转化模块200还用于:
通过json数据编辑器,以属性作为键名以及以属性值作为键值,将所述接口数据以json数据的形式写入json文件中。
具体地,可以通过json数据生成器将接口数据转换成json数据的形式,也可预先对接口数据进行以json数据的格式进行编写。json数据由键值对(key-value)组成,一个键值对包括一个键名和与该键名对应的键值。一条json数据包括至少一个键值对;键名与键值之间通过冒号分开;每个键值对以逗号结束;键名需加引号;若键值是字符型数据则加引号,非字符型数据不加引号;一条json数据中可以有子json数据,子json数据中的各数据以左中括号作为开始,右中括号作为结束。json文件以左大括号作为文件开始、右大括号作为文件结束,子json数据以左大括号作为子json数据的开始、右大括号作为子json数据的结束。
将json数据实例化成json对象,即创建新的对象,以json数据作为输入的数据流,对新建的对象进行赋值的过程;json对象是对新建的、且实例化后的对象的通称。
举例来说,一个关于学生信息的json文件可以表示如下:
实例化是指在面向对象的编程中,创建对象的过程。对象是面向对象编程中数据存储和处理的基本单位,对象包括属性名和方法。
获取所述json文件中的json数据,并将所述json文件的所述json数据进行实例化,得到json对象。
具体地,将json数据进行反序列化可以通过调用Java内部自带函数,也可以使用现成的第三方工具,如JSON-LIB,阿里公司的FastJson,谷歌公司的Gson,开源的Jackson等。
仍以关于学生信息的json文件为例,通过调用java内部自带函数或第三方解析json工具,实例化后的json对象为一个学生对象,该对象包括的属性与json文件中键名一一对应,包括“学生姓名”、“年龄”、“班级”;该对象还包括一个子对象“期中成绩”,子对象的属性包括“语文”和“数学”。学生对象的属性值与json文件中键值一一对应。
获取模块202,用于通过java反射机制,获取所述json对象对应的java对象中的property数据,所述property数据包括java对象的键名及键值。
具体地,java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。获取到java对象之后可以创建实例,查看源码可以知道java对象的属性信息。java的反射机制是根据java对象的键名,可以说是属性名(key名),获取键值,也可说是属性值(value值)。所述属性数据(property数据)包括字段的类型、名称、对外发布的获取方法、对外发布的赋值方法。
判断模块204,用于判断所述json对象的键名与所述java对象的键名是否匹配。
具体地,即,判断json对象的key名与java对象的key名是否匹配,json对象的key名与java对象的key名的拼写、大小写等信息是否匹配,若拼写、大小写等信息完全一致,则表示json对象的key名与java对象的key名匹配。
第一执行模块206,用于若所述json对象的键名与所述java对象的键名匹配,将所述json对象写入所述java对象。
具体地,将json对象写入java对象之前,对json对象的键名与以及键值与先java对象的键名与以及键值进行判断,确定使用哪种方式进行写入。
示例性地,所述判断模块204还用于:
若所述json对象的键名与所述java对象的键名匹配,判断所述java对象的键名的字段类型是否为基础类型。
具体地,基础类型即定义在jre(java框架提供)中的类型,例如String,Integer,BigDecimal等类型。利用扩展类加载器或者应用类加载器引用java对象的key名的字段类型。所以,判断java中的类型是否是基础类型,即获取类的类加载器(负责动态加载Java类到Java虚拟机的内存空间中),如果获取不到,则认为是基础类型。或者可以,直接将对象强转给任意一个类型,如果转换成功,则可以确定,如果不成功,在异常提示中可以确定类型。
示例性地,所述判断模块204进一步用于:
若所述json对象的键名与所述java对象的键名不匹配,则查询所述json对象的键值的字段类型。
具体地,json对象数组的结构复杂,通过对java对象的value值的字段类型进行判断,确定是否为所需要所述java对象的value值的字段类型,进一步调用工具类重写java对象。
若所述json对象的键值的字段类型是java对象的键值的字段类型,将所述json对象的键值的字段类型作为所述java对象的键值的字段类型,并将所述json对象的键值的字段作为java对象的键值的字段。
具体地,若json对象的键值的字段类型是java对象,则把该字段类型作为java对象,json字段的value作为新的json对象,递归调用工具类进行数据写入。
若所述json对象的键值的字段类型为list,则循环读取所述json对象中的子对象的键值,当所述json对象的键值与所述子对象的键值一致时,将所述json对象的键值写入java对象。
具体地,递归调用工具类,得到所述json对象的value值,写入所述java对象的value值的字段中。例如:{“personName”:”小明”,”parent”:[{“father”:”大明”,”eage”:”60”},{“mother”:”小芳”,”eage”:”50”}]},对parent进行list,循环读取里面的value值的father的字段信息与mother信息,就是list的递归调用。循环读取json对象的value值时,由于json对象的结构具有多样性,有一层结构,例如:{“personName”:”小明”};或者嵌套的结构,例如:{“personName”:”小明”,”parent”:{“father”:”大明”,”eage”:”60”}}。因此,当读到parent的时候,parent是一个对象,里面有father和eage两个value值,不确定需要的是哪个value值时,即可使用递归调用。在当为嵌套结构时,使用递归调用循环parent,循环里面了的两个value值之后,再循环外层。只有当value值的字段一致时,调用json对象的键值,并将json对象的键值写入java对象。
若是,获取所述java对象写权限,将所述json对象的value字段写入所述java对象中。
具体地,java对象的key名的字段类型是基础类型表示所述java对象可写,不用更改自定义数据。调用函数file.setWritable(boolean);若返回参数为true就是java对象可写,false就是不可写。
第二执行模块208,用于若所述json对象的键名与所述java对象的键名不匹配,将所述json对象的键名和键值放置于所述java对象的自定义扩展字段中。
具体地,自定义扩展字段用于承接自定义数据,即java对象的扩展数据,java对象的扩展数据可以为任意数据。可通过自定义数据的定义业务归属,即可以识别是哪个业务的扩展数据,业务归属根据不同的业务人员注册的信息不同进行划分。
实施例三
参阅图6,是本发明实施例三之计算机设备的硬件架构示意图。本实施例中,所述计算机设备2是一种能够按照事先设定或者存储的指令,自动进行键值计算和/或信息处理的设备。该计算机设备2可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图6所示,所述计算机设备2至少包括,但不限于,可通过系统总线相互通信连接存储器21、处理器22、网络接口23、以及自定义接口数据的转换系统20。其中:
本实施例中,存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备2的内部存储单元,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算机设备2的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备2的操作系统和各类应用软件,例如实施例二的自定义接口数据的转换系统20的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备2的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行自定义接口数据的转换系统20,以实现实施例一的自定义接口数据的转换方法。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述服务器2与其他电子装置之间建立通信连接。例如,所述网络接口23用于通过网络将所述服务器2与外部终端相连,在所述服务器2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。需要指出的是,图6仅示出了具有部件20-23的计算机设备2,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器21中的所述自定义接口数据的转换系统20还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并由一个或多个处理器(本实施例为处理器22)所执行,以完成本发明。
例如,图5示出了所述实现自定义接口数据的转换系统20实施例二的程序模块示意图,该实施例中,所述自定义接口数据的转换系统20可以被划分为转化模块200、获取模块202、判断模块204、第一执行模块206以及第二执行模块208。其中,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述自定义接口数据的转换系统20在所述计算机设备2中的执行过程。所述程序模块200-208的具体功能在实施例二中已有详细描述,在此不再赘述。
实施例四
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储自定义接口数据的转换系统20,被处理器执行时实现实施例一的自定义接口数据的转换方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种自定义接口数据的转换方法,其特征在于,包括:
接收接口数据,将所述接口数据转化为json对象,所述接口数据包括应用程序接口的自定义数据;
通过java反射机制,获取所述json对象对应的java对象中的属性数据,所述属性数据包括java对象的键名及键值;
判断所述json对象的键名与所述java对象的键名是否匹配;
若所述json对象的键名与所述java对象的键名匹配,将所述json对象写入所述java对象;
若所述json对象的键名与所述java对象的键名不匹配,将所述json对象的键名和键值放置于所述java对象的自定义扩展字段中。
2.根据权利要求1所述的方法,其特征在于,接收接口数据,将所述接口数据转化为json对象包括:
通过json数据编辑器,以属性作为键名以及以属性值作为键值,将所述接口数据以json数据的形式写入json文件中;
获取所述json文件中的json数据,并将所述json文件的所述json数据进行实例化,得到json对象。
3.根据权利要求1所述的方法,其特征在于,若所述json对象的键名与所述java对象的键名匹配,将所述json对象写入所述java对象包括:
若所述json对象的键名与所述java对象的键名匹配,判断所述java对象的键名的字段类型是否为基础类型;
若是,获取所述java对象写权限,将所述json对象的键值的字段写入所述java对象的键值的字段中。
4.根据权利要求3所述的方法,其特征在于,判断所述java对象的键名的字段类型是否为基础类型之后,还包括:
若所述json对象的键名与所述java对象的键名不匹配,则查询所述json对象的键值的字段类型;
若所述json对象的键值的字段类型是java对象的键值的字段类型,将所述json对象的键值的字段类型作为所述java对象的键值的字段类型,并将所述json对象的键值的字段作为java对象的键值的字段;
若所述json对象的键值的字段类型为list,则循环读取所述json对象中的子对象的键值,当所述json对象的键值与所述子对象的键值一致时,将所述json对象的键值写入java对象。
5.一种自定义接口数据的转换系统,其特征在于,包括:
转化模块,用于接收接口数据,将所述接口数据转化为json对象,所述接口数据包括应用程序接口的自定义数据;
获取模块,用于通过java反射机制,获取所述json对象对应的java对象中的property数据,所述property数据包括java对象的键名及键值;
判断模块,用于判断所述json对象的键名与所述java对象的键名是否匹配;
第一执行模块,用于若所述json对象的键名与所述java对象的键名匹配,将所述json对象写入所述java对象;
第二执行模块,用于若所述json对象的键名与所述java对象的键名不匹配,将所述json对象的键名和键值放置于所述java对象的自定义扩展字段中。
6.根据权利要求5所述的系统,其特征在于,所述转化模块还用于:
通过json数据编辑器,以属性作为键名以及以属性值作为键值,将所述接口数据以json数据的形式写入json文件中;
获取所述json文件中的json数据,并将所述json文件的所述json数据进行实例化,得到Json对象。
7.根据权利要求5所述的系统,其特征在于,所述第一执行模块还用于:
若所述json对象的键名与所述java对象的键名匹配,判断所述java对象的键名的字段类型是否为基础类型;
若是,获取所述java对象写权限,将所述json对象的value字段写入所述java对象中。
8.根据权利要求7所述的系统,其特征在于,所述第一执行模块还用于:
若所述json对象的键名与所述java对象的键名不匹配,则查询所述json对象的键值的字段类型;
若所述json对象的键值的字段类型是java对象的键值的字段类型,将所述json对象的键值的字段类型作为所述java对象的键值的字段类型,并将所述json对象的键值的字段作为java对象的键值的字段;
若所述json对象的键值的字段类型为list,则循环读取所述json对象中的子对象的键值,当所述json对象的键值与所述子对象的键值一致时,将所述json对象的键值写入java对象。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-4中任一项所述的自定义接口数据的转换方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如权利要求1-4中任一项所述的自定义接口数据的转换方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010272809.5A CN111562907A (zh) | 2020-04-09 | 2020-04-09 | 自定义接口数据的转换方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010272809.5A CN111562907A (zh) | 2020-04-09 | 2020-04-09 | 自定义接口数据的转换方法与系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111562907A true CN111562907A (zh) | 2020-08-21 |
Family
ID=72070661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010272809.5A Pending CN111562907A (zh) | 2020-04-09 | 2020-04-09 | 自定义接口数据的转换方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111562907A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115455239A (zh) * | 2022-11-10 | 2022-12-09 | 北京易诚互动网络技术股份有限公司 | 一种java类实例和目标格式数据的转换方法和装置 |
-
2020
- 2020-04-09 CN CN202010272809.5A patent/CN111562907A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115455239A (zh) * | 2022-11-10 | 2022-12-09 | 北京易诚互动网络技术股份有限公司 | 一种java类实例和目标格式数据的转换方法和装置 |
CN115455239B (zh) * | 2022-11-10 | 2023-01-06 | 北京易诚互动网络技术股份有限公司 | 一种java类实例和目标格式数据的转换方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107958016B (zh) | 功能页面定制方法及应用服务器 | |
WO2018000998A1 (zh) | 界面生成方法、装置和系统 | |
US8887135B2 (en) | Generating test cases for functional testing of a software application | |
CN112765023B (zh) | 测试用例生成方法、装置 | |
CN110704521A (zh) | 接口数据接入方法及系统 | |
CN111159982B (zh) | 文档编辑方法、装置、电子设备及计算机可读存储介质 | |
CN114090671A (zh) | 数据导入方法、装置、电子设备及存储介质 | |
CN115185550A (zh) | 服务部署方法、装置、计算机设备及存储介质 | |
CN111158687B (zh) | Java插件的界面生成方法、装置、计算机设备和存储介质 | |
CN112000692B (zh) | 页面查询反馈方法、装置、计算机设备及可读存储介质 | |
CN113609820A (zh) | 基于可扩展标记语言文件生成word文件的方法、装置及设备 | |
CN113312108A (zh) | Swift报文的校验方法、装置、电子设备及存储介质 | |
CN111611441B (zh) | 异构数据的处理方法、装置以及计算机设备 | |
CN108885544B (zh) | 前端页面国际化处理方法、应用服务器及计算机可读存储介质 | |
CN115599386A (zh) | 代码生成方法、装置、设备及存储介质 | |
CN111367890A (zh) | 一种数据迁移的方法、装置、计算机设备及可读存储介质 | |
CN111562907A (zh) | 自定义接口数据的转换方法与系统 | |
CN112527738A (zh) | 项目描述文件优化方法、系统及存储介质 | |
CN110866007B (zh) | 大数据应用和表的信息管理方法、系统和计算机设备 | |
CN111581578B (zh) | 接口请求处理方法和装置 | |
CN109509467B (zh) | 代码生成方法及装置 | |
CN109241515B (zh) | 一种生成报告文件的方法及装置 | |
CN109828752B (zh) | 项目代码自动生成方法、装置、计算机设备及存储介质 | |
CN112966198A (zh) | 级联样式表数据生成方法、系统、计算机设备及存储介质 | |
CN115080596B (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 |