CN113572858B - 一种数据传输方法、装置、设备、介质和产品 - Google Patents
一种数据传输方法、装置、设备、介质和产品 Download PDFInfo
- Publication number
- CN113572858B CN113572858B CN202111118794.8A CN202111118794A CN113572858B CN 113572858 B CN113572858 B CN 113572858B CN 202111118794 A CN202111118794 A CN 202111118794A CN 113572858 B CN113572858 B CN 113572858B
- Authority
- CN
- China
- Prior art keywords
- data
- component
- result
- parameter
- converting
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种数据传输方法、装置、设备、介质和产品,其中,该方法包括:通过数据集组件接收用户输入的第一数据,将第一数据进行预处理后发送至HTTP请求组件;通过HTTP请求组件将预处理后的第一数据转换为JSON格式的数据,得到第二数据,并将第二数据通过HTTP的请求参数POST提交到服务端,服务端是基于JAVA开发的;通过HTTP请求组件接收服务端发送的返回结果,对返回结果进行处理,得到显示数据,将显示数据发送至数据集组件,通过数据集组件显示显示数据。实现了Delphi与JAVA这两种不同的计算机语言之间的数据通信。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据传输方法、装置、设备、介质和产品。
背景技术
随着互联网信息技术在各领域的广泛应用,尤其是在传统企业应用中的不断深入,使得各业务系统间信息交换更加频繁。各业务部门之间与Web服务端等异构计算机语言之间进行数据共享或通信的问题也日益突出。传统的企业应用信息系统采用客户端可执行程序架构设计,基于这种富客户端技术的访问方式,是通过客户端可直接访问数据库,实现了数据快速存储,能够满足企业高频、快速响应的业务应用需求,而且能够实现企业生产环境中复杂的硬件设备对接应用的业务要求,但无法满足互联网的应用,比如:互联网访问、负载均衡等问题。而现有的基于互联网信息技术的企业应用信息系统采用WEB架构设计,是基于浏览器技术的方式访问,该方式可实现企业信息系统的低频、普通及延迟响应的业务应用,但无法满足高频、快速响应的业务应用,而且无法实现企业生产环境中复杂的硬件设备对接应用的业务要求。
发明内容
本发明提供一种数据传输方法、装置、设备、介质和产品,是由客户端发起请求把数据发送到服务端,服务端接收到数据处理后返回给客户端的过程,即实现了Delphi开发的客户端程序访问JAVA语言开发的服务端程序。不仅实现了Delphi与JAVA这两种不同的计算机语言之间的数据通信,还利用JAVA语言的一次编译跨平台部署,以及集群、负载均衡等互联网系统的应用部署特性,保障了系统的高稳定性、高可靠性。
第一方面,本发明提供了一种数据传输方法,应用于基于Delphi开发的客户端或富客户端,包括:通过数据集组件接收用户输入的第一数据,将所述第一数据进行预处理后发送至HTTP请求组件;通过所述HTTP请求组件将预处理后的所述第一数据转换为JSON格式的数据,得到第二数据,并将所述第二数据通过HTTP的请求参数POST提交到服务端,所述服务端是基于JAVA开发的;通过所述HTTP请求组件接收所述服务端发送的返回结果,对所述返回结果进行处理,得到显示数据,将所述显示数据发送至所述数据集组件,通过所述数据集组件显示所述显示数据,所述返回结果为JSON格式的字符数据。
进一步地,所述HTTP请求组件包括TjsonConnection组件,所述TjsonConnection组件继承于TCustomRemoteServer组件,实现了IAppServer接口;所述数据集组件包括TjsonClientDataSet组件,所述TjsonClientDataSet组件继承于TCustomClientDataSet组件。
进一步地,所述通过数据集组件接收用户输入的第一数据,将所述第一数据进行预处理,包括:通过所述数据集组件接收用户输入的第一数据,判断所述第一数据是否为参数数据或者表格数据;若所述第一数据为参数数据,则根据预设的第一规则将所述参数数据进行字符串处理;若所述第一数据为表格数据,则根据预设的第二规则将所述表格数据进行字符串处理。
进一步地,所述返回结果包括数据值、数据类型、数据长度以及数据标识信息,以及所述通过所述HTTP请求组件接收所述服务端发送的返回结果,对所述返回结果进行处理,得到显示数据,包括:通过数据标识信息判断所述显示数据是否为参数结果或者数据集结果;若所述数据标识信息为参数结果,则将所述返回结果中的数据值转换为对应所述数据集组件的格式的值,并根据所述数据类型转换为对应Delphi的数据类型;若所述数据标识信息为数据集结果,则将所述返回结果中的数据值转换为对应所述数据集组件的格式的值,并根据所述数据类型和所述数据长度转换为对应Delphi的数据类型和数据长度。
进一步地,所述通过所述数据集组件显示所述显示数据,包括:若所述数据标识信息为参数结果,所述数据集组件将所述显示数据进行处理后,由数据输出控件显示所述显示数据;若所述数据标识信息为数据集结果,所述数据集组件将所述显示数据进行处理后,由表格控件显示所述显示数据。
第二方面,本发明还提供了一种数据传输方法,应用于基于JAVA开发的服务端,包括:通过接收数据组件接收第二数据,所述第二数据是通过HTTP的请求参数POST提交的;将所述第二数据进行处理,得到第三数据,所述第三数据为对应JAVA语言不同数据结构对象的数据,并将所述第三数据提交至业务服务组件;所述业务服务组件根据所述第三数据进行业务处理,得到第四数据,所述第四数据为对应JAVA语言不同数据结构对象的数据;通过序列化组件将所述第四数据转换为JSON格式的数据,并序列化封装,得到对应客户端的返回结果,发送所述返回结果至所述客户端,所述客户端是基于Delphi开发的。
第三方面,本发明还提供了一种数据传输装置,应用于基于Delphi开发的客户端或富客户端,包括:数据集组件,用于接收用户输入的第一数据,将所述第一数据进行预处理后发送至HTTP请求组件;所述HTTP请求组件,用于将预处理后的所述第一数据转换为JSON格式的数据,得到第二数据,并将所述第二数据通过HTTP的请求参数POST提交到服务端,所述服务端是基于JAVA开发的;所述HTTP请求组件,还用于接收所述服务端发送的返回结果,对所述返回结果进行处理,得到显示数据,将所述显示数据发送至所述数据集组件,通过所述数据集组件显示所述显示数据,所述返回结果为JSON格式的字符数据。
第四方面,本发明还提供了一种数据传输装置,应用于基于JAVA开发的服务端,包括:接收数据组件,用于接收第二数据,所述第二数据是通过HTTP的请求参数POST提交的;将所述第二数据进行处理,得到第三数据,所述第三数据为对应JAVA语言不同数据结构对象的数据,并将所述第三数据提交至业务服务组件;所述业务服务组件,用于根据所述第三数据进行业务处理,得到第四数据,所述第四数据为对应JAVA语言不同数据结构对象的数据;序列化组件,用于将所述第四数据转换为JSON格式的数据,并序列化封装,得到对应客户端的返回结果,发送所述返回结果至所述客户端,所述客户端是基于Delphi开发的。
第五方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面或第二方面所述数据传输方法的步骤。
第六方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面或第二方面所述数据传输方法的步骤。
第七方面,本发明实施例还提供了一种计算机程序产品,其上存储有可执行指令,该指令被处理器执行时使处理器实现第一方面或第二方面所述数据传输方法的步骤。
本发明提供的一种数据传输方法、装置、设备、介质和产品,基于Delphi开发的客户端或富客户端,通过数据集组件接收用户输入的第一数据,将第一数据进行预处理后发送至HTTP请求组件;通过HTTP请求组件将预处理后的第一数据转换为JSON格式的数据,得到第二数据,并将第二数据通过HTTP的请求参数POST提交到服务端,服务端是基于JAVA开发的;通过HTTP请求组件接收服务端发送的返回结果,对返回结果进行处理,得到显示数据,将显示数据发送至数据集组件,通过数据集组件显示显示数据,返回结果为JSON格式的字符数据。通过将第一数据转换为JSON格式的数据传输给服务端,实现了跨语言的数据通信。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明提供的数据传输方法的一些实施例的流程示意图;
图2是根据本发明提供的数据传输方法的另一些实施例的流程示意图;
图3是根据本发明提供的数据传输方法的一个显示数据的示意图;
图4是根据本发明提供的数据传输方法的一个应用场景的示意图;
图5是根据本发明提供的数据传输装置的一些实施例的结构示意图;
图6是根据本发明提供的数据传输装置的一些实施例的结构示意图;
图7是根据本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本发明中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本发明实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
下面将参考附图并结合实施例来详细说明本发明。
请参阅图1,图1是本发明提供的数据传输方法的一些实施例的流程示意图。如图1所示,该方法,包括以下步骤:
步骤101,通过数据集组件接收用户输入的第一数据,将第一数据进行预处理后发送至HTTP请求组件。
在一些实施例中,数据集组件可以包括如表1所示的属性。可以通过Active属性来发起服务端的请求(Active属性的值为true时请求服务端)。数据集组件可以接收用户通过表格、文本框等输入控件输入的第一数据。预处理过程根据具体需要设定,比如格式转换、数据压缩等。作为示例,第一数据可以是“GE001”,其赋值方式可以是:filter_LIKES_t!code=GE001。
表1
步骤102,通过HTTP请求组件将预处理后的第一数据转换为JSON格式的数据,得到第二数据,并将第二数据通过HTTP的请求参数POST提交到服务端,服务端是基于JAVA开发的。
在一些实施例中,HTTP请求组件是客户端与服务器端连接的桥梁,整个项目都可以通过HTTP请求组件进行连接。HTTP请求组件接收到数据集组件发送的数据后,可以把对象数据全部转换为JSON格式的数据,也可以把特殊字符做转义处理后通过HTTP请求参数POST提交到服务端。作为示例,特殊字符的转义可以参考下表。仍以上述为例,第一数据可以是“GE001”,将“GE001”预处理后,转换为JSON格式的数据,得到第二数据,第二数据可以是“&filter_LIKES_t!code=GE001%3F&filter_LIKES_t!name=&filter_EQS_t!type=
&filter_EQS_t!grade=”。
表2
步骤103,通过HTTP请求组件接收服务端发送的返回结果,对返回结果进行处理,得到显示数据,将显示数据发送至数据集组件,通过数据集组件显示数据,返回结果为JSON格式的字符数据。
在一些实施例中,对返回结果进行处理的方式可以包括解包、解析、转换。解包是压包的反过程,即将压包文件还原成原来的文件。数据传输过程中往往需要将数据压包,即将文件压缩存储后通过字符串的方式传输。解析过程可以是一个映射关系,比如将文件从JAVA语言解析为字节码文件,也可以是将解包后得到的字符串进行拆分的过程。转换过程可以是对拆分后的字符串进行数据格式或者数据结构转换的过程。数据集组件可以将显示数据封装成对应显示控件格式的数据后,把该数据发送给显示控件。由显示控件显示数据,如图3所示。显示控件还可以是表格、文本框等。
本发明一些实施例公开的数据传输方法,基于Delphi开发的客户端或富客户端,通过数据集组件接收用户输入的第一数据,将第一数据进行预处理后发送至HTTP请求组件;通过HTTP请求组件将预处理后的第一数据转换为JSON格式的数据,得到第二数据,并将第二数据通过HTTP的请求参数POST提交到服务端,服务端是基于JAVA开发的;通过HTTP请求组件接收服务端发送的返回结果,对返回结果进行处理,得到显示数据,将显示数据发送至数据集组件,通过数据集组件显示显示数据,返回结果为JSON格式的字符数据。利用客户端语言Delphi的高效编译、开发效率高、硬件对接方便等优势实现企业业务端的应用,通过将第一数据转换为JSON格式的数据传输给服务端,实现了跨语言的数据通信。
在一些可选的实现方式中,HTTP请求组件可以包括TjsonConnection组件,TjsonConnection组件继承于TCustomRemoteServer组件,实现了IAppServer接口;数据集组件包括TjsonClientDataSet组件,TjsonClientDataSet组件继承于TCustomClientDataSet组件。利用基于Delphi开发的客户端数据集组件TjsonClientDataSet、HTTP请求组件TjsonConnection,将数据进行接收、封装、转换后得到JSON格式的数据,将JSON格式的数据通过HTTP请求发送给服务端,从而实现两种不同计算机语言的数据通讯。
作为示例,TjsonClientDataSet组件的数据集字段以及输入、输出参数的数据类型可以有:ftDateTime、ftFloat、ftLargeint、ftWideString。TCustomRemoteServer组件、TCustomClientDataSet组件可以是编辑器工具自带的组件,TjsonConnection组件可以作为系统中客户端与服务器端进行http请求连接的桥梁,所有与TjsonClientDataSet组件有关的数据都是通过TjsonConnection组件进行请求连接。TjsonConnection组件可以包括URLHost属性,该属性在系统第一次连接时进行设置服务器的请求地址,保存后以后系统从配置文件中获取该地址。
在一些可选的实现方式中,通过数据集组件接收用户输入的第一数据,将第一数据进行预处理,可以包括:通过数据集组件接收用户输入的第一数据,判断第一数据是否为参数数据或者表格数据;若第一数据为参数数据,则根据预设的第一规则将参数数据进行字符串处理;若第一数据为表格数据,则根据预设的第二规则将表格数据进行字符串处理。
作为示例,通过数据集组件接收用户输入的第一数据后,需要判断第一数据是否是参数数据或者表格数据,可以通TjsonClientDataSet组件的2个属性进行区分:参数数据可以通过TParams属性进行设置或者接收,表格数据可以通过DataSet属性进行接收。
作为示例,参数数据可以是通过接收用户从文本框输入的数据,若第一数据为参数数据,数据集组件也可以根据预设的第一规则,将参数数据转换为输入参数,比如,将参数数据使用&符号分隔,得到输入参数;若第一数据为表格数据,表格数据可以是用户通过表格提交的数据,也可以是包含多个变量的数组集合,将表格数据转换为数据集组件对应的数据格式,然后再根据预设的第二规则将表格数据进行字符串处理,比如,将表格数据转换为list[n]&格式的请求参数字符串。
作为示例,若第一数据为参数数据“GE001”,则将参数数据转换为输入参数,即将参数数据使用&符号分隔,得到的输入参数可以是“&filter_LIKES_t!code=GE001&filter_
LIKES_t!name=&filter_EQS_t!type=&filter_EQS_t!grade=”。
作为示例,若第一数据为表格数据,将表格数据转换为数据集组件对应的数据格式,然后再根据预设的第二规则将表格数据进行字符串处理,即将表格数据转换为list[n]&格式的请求参数字符串,可以得到“&handprices[0].opertype=4&handprices[0].toplimitprice=
1000&handprices[0].vehicletypeid=1000725&handprices[0].vehicletype=中型中级座&handprices[0].lowerlimitprice=0&handprices[0].departstation=十堰中心站&handprices[0].
distance=184&handprices[0].reachstationid=1159461&handprices[0].scheduleid=1161893&handprices[0].id=2471&handprices[0].reachstation=溢水&handprices[0].moreprice=0&handprices[0]
.fullprice=60&handprices[0].roundprice=0&handprices[0].studentprice=60&handprices[0].connectprice=0&handprices[0].createby=1158013&handprices[0].departstationid=222&handprices[0].discountprice=0&handprices[0].halfprice=30&handprices[0].seattype=0&handprices[1].opertype=4&handprices[1].toplimitprice=1000&handprices[1].vehicletypeid=1000725&handprices[1].vehicletype=中型中级座&handprices[1].lowerlimitprice=0&handprices[1].Departstation
=十堰中心站&handprices[1].distance=189&handprices[1].reachstationid=1158774&handprices
[1].scheduleid=1161893&handprices[1].id=2472&handprices[1].reachstation=保丰&handprices
[1].moreprice=0&handprices[1].fullprice=60&handprices[1].roundprice=0&handprices[1].studentprice=60&handprices[1].connectprice=0&handprices[1].createby=1158013&handprices[1].departstationid=222&handprices[1].discountprice=0&handprices[1].halfprice=30&handprices[1].seattype=0&handprice.scheduleid=1161893&handprice.vehicletypeid=1000725&handprice.createby=1158013&iscopyvehicletype=False”。
在一些可选的实现方式中,返回结果可以包括数据值、数据类型、数据长度以及数据标识信息,以及通过HTTP请求组件接收服务端发送的返回结果,对返回结果进行处理,得到显示数据,可以包括:通过数据标识信息判断显示数据是否为参数结果或者数据集结果;若数据标识信息为参数结果,则将返回结果中的数据值转换为对应数据集组件的格式的值,并根据数据类型转换为对应Delphi的数据类型;若数据标识信息为数据集结果,则将返回结果中的数据值转换为对应数据集组件的格式的值,并根据数据类型和数据长度转换为对应Delphi的数据类型和数据长度。
作为示例,若显示数据为参数结果,则可以把解析后的数据转换为TjsonClientDataSet组件的输出参数的值,并根据服务端返回的数据类型信息定义该参数对应的Delphi的数据类型;若是返回的是数据集结果,则把解析后的数据转换为TjsonClientDataSet组件可以识别的DataSet数据,并定义DataSet数据中所有数据的对应Delphi的数据类型、长度信息。
作为示例,返回结果可以是:{"flag":1,"msg":"操作成功!","vehiclelist":,"vehiclemap":[{"code":"GE001","createby":1158013,"createname":"ADMIN","createtime":"2013-10-17 00:00:00","customname":"大型高二级座","grade":"2","id":1000723,
"isactive":true,"islocaldelete":false,"name":"大型高二级座","orgid":1158012,"rationseatnum":50,"
synccode":"F5BF4AC17067733CE5419FCBE576D448","type":"2","updateby":1158013,"updatename":"ADMIN","updatetime":"2015-08-06 18:44:00"}],"vehiclemap_type":{"synccode":"String",
"updatetime":"Timestamp","updatename":"String","rationseatnum":"short","createby":"Long","code":"String","type":"String","id":"long","createtime":"Timestamp","isactive":"boolean","orgid":"Long","updateby":"Long","name":"String","grade":"String","islocaldelete":"boolean","customname":"String","createname":"String"},"vehiclemap_typelength":{"synccode":32,"updatetime":21,"updatename":5,"rationseatnum":0,"createby":0,"code":5,"type":1,"id":0,"createtime":21,"isactive":4,"orgid":0,"updateby":0,"name":6,"grade":1,"customname":6,"islocaldelete":5,"createname":5},"vehicletype":};
其中,数据值为:{"code":"GE001","createby":1158013,"
createname":"ADMIN","createtime":"2013-10-17 00:00:00",
"customname":"大型高二级座","grade":"2","id":1000723,"isactive":true
,"islocaldelete":false,"name":"大型高二级座","orgid":1158012,
"rationseatnum":50,"synccode":"F5BF4AC17067733CE5419FCBE576D448","type":"2","updateby":1158013,"updatename":"ADMIN","updatetime":"2015-08-0618:44:00"},即"vehiclemap"对应的参数;
数据类型为:{"synccode":"String","updatetime":"Timestamp","updatename":"String",
"rationseatnum":"short","createby":"Long","code":"String","type":"String","id":"long","createtime":"Timestamp","isactive":"boolean","orgid":"Long","updateby":"Long","name":"String","grade":"String","islocaldelete":"boolean","customname":"String","createname":"String"}
,即"vehiclemap_type"对应的参数,数据类型也可以作为数据标识;
数据长度为:{"synccode":32,"updatetime":21,"updatename":5,"rationseatnum":0,"createby":0,
"code":5,"type":1,"id":0,"createtime":21,"isactive":4,"orgid":0,"updateby":0,"name":6,"grade":1,"customname":6,"islocaldelete":5,"createname":5},即"vehiclemap_typelength"对应的参数。
在一些可选的实现方式中,通过数据集组件显示显示数据,包括:若数据标识信息为参数结果,数据集组件将显示数据进行处理后,由数据输出控件显示显示数据;若数据标识信息为数据集结果,数据集组件将显示数据进行处理后,由表格控件显示显示数据。
作为示例,可以在解析封装好的TjsonClientDataSet组件数据后,获取显示数据,若数据标识信息为参数结果,可以把数据显示到输出文本框等数据输出控件中,若数据标识信息为数据集结果,可以通过关联数据源控件DataSource将数据集结果传递给展示控件,即Dbgrideh表格控件,来显示数据。
本发明实现了JSON数据对象在异构计算机语言中传输转换集成的应用,利用JSON技术的特性及其相关优势,构建了一种基于JSON数据结构的数据交换方式,提高了异构计算机语言间数据通信的通用性和通信效率,实现富客户端或客户端的计算机语言与互联网服务的计算机语言的数据通信,满足了企业信息系统生产应用。
请参阅图2,图2是本发明提供的数据传输方法的另一些实施例的流程示意图。如图2所示,该方法,包括以下步骤:
步骤201,通过接收数据组件接收第二数据,第二数据是通过HTTP的请求参数POST提交的;将第二数据进行处理,得到第三数据,第三数据为对应JAVA语言不同数据结构对象的数据,并将第三数据提交至业务服务组件。
在一些实施例中,服务端接收到客户端的提交的第二数据,把JSON格式的数据进行截取、解析、转换、反序列化为对应JAVA语言的不同的数据结构对象,即第三数据,如图4所示,然后交由业务服务组件处理。业务服务组件可以根据业务需求进行查询、插入或者删除数据等操作。作为示例,JAVA语言跟Delphi语言对应的数据类型:BigDecimal、Float、Double 对应ftFloat;BigInteger、Long、对应于ftLargeint;Timestamp 对应于ftDateTime。
步骤202,业务服务组件根据第三数据进行业务处理,得到第四数据,第四数据为对应JAVA语言不同数据结构对象的数据。
在一些实施例中,业务服务组件将第三数据处理后,返回对应JAVA语言的数据结构对象的第四数据。作为示例,第四数据可以为Vehicletype类实例的对象vehicletype,有code、createby、createname、createtime、customname、isactive、id、grade等属性。
步骤203,通过序列化组件将第四数据转换为JSON格式的数据,并序列化封装,得到对应客户端的返回结果,发送返回结果至客户端,客户端是基于Delphi开发的。
在一些实施例中,服务端的序列化组件可以把JAVA语言的不同数据结构对象,即第四数据,序列化封装为客户端组件所需要的数据格式,包括数据值、数据类型、数据长度以及数据标识信息,如图4所示,并通过JSON格式发送至客户端。实现了通过序列化组件,使服务端可以通过序列化数据,支持客户端能识别的数据格式。作为示例,仍以上述第一数据是“GE001”为例,若业务服务组件执行的是查询业务,则返回结果可以是:{"flag":1,"msg":"操作成功!","vehiclelist":,"vehiclemap":[{"code":"GE001","createby":1158013,"
createname":"ADMIN","createtime":"2013-10-1700:00:00","customname":"大型高二级座","grade":"2","id":1000723,"isactive":true,"
islocaldelete":false,"name":"大型高二级座","orgid":1158012,"rationseatnum":50,"synccode":"F5BF4AC17067733C
E5419FCBE576D448","type":"2","updateby":1158013,"updatename":"ADMIN","updatetime":"2015-08-06 18:44:00"}],"vehiclemap_type":
{"synccode":"String","updatetime":"Timestamp","updatename":"String","rationseatnum":"short","createby":"Long","code":"String","type":"String","id":"long","createtime":"Timestamp","isactive":"boolean","orgid":"Long","updateby":"Long","name":"String","grade":"String","islocaldelete":"boolean","customname":"String","createname":"String"},"vehiclemap_typelength":{"synccode":32,"updatetime":21,"updatename":5,"rationseatnum":0,"createby":0,"code":5,"type":1,"id":0,"createtime":21,"isactive":4,"orgid":0,"updateby":0,"name":6,"grade":1,"customname":6,"islocaldelete":5,"createname":5},"vehicletype":}。
本发明基于JSON的数据传输格式,使两种不同计算机语言的数据通过封装、传输、拆包、解包、再封装,达到了客户端的计算机语言能够识别的数据的过程,充分利用了计算机富客户端或者客户端语言以及互联网计算机语言各自优势,实现企业信息系统的应用。
本发明一些实施例公开的数据传输方法,基于JAVA开发的服务端,通过接受数据组件接收第二数据,第二数据是通过HTTP的请求参数POST提交的;将第二数据进行处理,得到第三数据,第三数据为对应JAVA语言不同数据结构对象的数据,并将第三数据提交至业务服务组件;业务服务组件根据第三数据进行业务处理,得到第四数据,第四数据为对应JAVA语言不同数据结构对象的数据;通过序列化组件将第四数据转换为JSON格式的数据,并序列化封装,得到对应客户端的返回结果,发送返回结果至客户端,客户端是基于Delphi开发的。利用了服务端语言JAVA的一次编译跨平台部署,集群、负载均衡等互联网系统的应用部署特性,保障系统的高稳定性、高可靠性。同时,将第四数据转换为JSON格式的数据返回给客户端,实现了Delphi与JAVA这两种不同的计算机语言之间的数据通信。
请参阅图5,图5是根据本发明提供的数据传输装置的一些实施例的结构示意图,作为对上述各图所示方法的实现,本发明还提供了一种数据传输装置的一些实施例,这些装置实施例与图1所示的一些方法的实施例相对应,且该装置可以应用于各种电子设备中。
如图5所示,一些实施例的数据传输装置500包括数据集组件501、HTTP请求组件502:数据集组件501,用于接收用户输入的第一数据,将第一数据进行预处理后发送至HTTP请求组件;HTTP请求组件502,用于将预处理后的第一数据转换为JSON格式的数据,得到第二数据,并将第二数据通过HTTP的请求参数POST提交到服务端,服务端是基于JAVA开发的;HTTP请求组件502,还用于接收服务端发送的返回结果,对返回结果进行处理,得到显示数据,将显示数据发送至数据集组件,通过数据集组件显示显示数据,返回结果为JSON格式的字符数据。
在一些实施例的可选实现方式中,HTTP请求组件包括TjsonConnection组件,TjsonConnection组件继承于TCustomRemoteServer组件,实现了IAppServer接口;数据集组件包括TjsonClientDataSet组件,TjsonClientDataSet组件继承于TCustomClientDataSet组件。
在一些实施例的可选实现方式中,数据集组件501还用于接收用户输入的第一数据,判断第一数据是否为参数数据或者表格数据;若第一数据为参数数据,则根据预设的第一规则将参数数据进行字符串处理;若第一数据为表格数据,则根据预设的第二规则将表格数据进行字符串处理。
在一些实施例的可选实现方式中,返回结果包括数据值、数据类型、数据长度以及数据标识信息,以及HTTP请求组件502还用于通过数据标识信息判断显示数据是否为参数结果或者数据集结果;若数据标识信息为参数结果,则将返回结果中的数据值转换为对应数据集组件501的格式的值,并根据数据类型转换为对应Delphi的数据类型;若数据标识信息为数据集结果,则将返回结果中的数据值转换为对应数据集组件501的格式的值,并根据数据类型和数据长度转换为对应Delphi的数据类型和数据长度。
在一些实施例的可选实现方式中,数据集组件501还用于若数据标识信息为参数结果,将显示数据进行处理后,由数据输出控件显示显示数据;若数据标识信息为数据集结果,将显示数据进行处理后,由表格控件显示显示数据。
可以理解的是,该装置500中记载的各模块与参考图1描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作、特征以及产生的有益效果同样适用于装置500及其中包含的模块、单元,在此不再赘述。
如图6所示,一些实施例的数据传输装置600包括接收数据组件601、业务服务组件602和序列化组件603:接收数据组件601,用于接收第二数据,第二数据是通过HTTP的请求参数POST提交的;将第二数据进行处理,得到第三数据,第三数据为对应JAVA语言不同数据结构对象的数据,并将第三数据提交至业务服务组件602;业务服务组件602,用于根据第三数据进行业务处理,得到第四数据,第四数据为对应JAVA语言不同数据结构对象的数据;序列化组件603,用于将第四数据转换为JSON格式的数据,并序列化封装,得到对应客户端的返回结果,发送返回结果至客户端,客户端是基于Delphi开发的。
可以理解的是,该装置600中记载的各模块与参考图1描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作、特征以及产生的有益效果同样适用于装置600及其中包含的模块、单元,在此不再赘述。
图7示例了一种电子设备的结构示意图,如图7所示,该设备可以包括:处理器(processor)710、通信接口(Communications Interface)720、存储器(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,以执行数据传输方法,该方法包括:通过数据集组件接收用户输入的第一数据,将第一数据进行预处理后发送至HTTP请求组件;通过HTTP请求组件将预处理后的第一数据转换为JSON格式的数据,得到第二数据,并将第二数据通过HTTP的请求参数POST提交到服务端,服务端是基于JAVA开发的;通过HTTP请求组件接收服务端发送的返回结果,对返回结果进行处理,得到显示数据,将显示数据发送至数据集组件,通过数据集组件显示显示数据,返回结果为JSON格式的字符数据。
此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,上述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,上述计算机程序包括程序指令,当上述程序指令被计算机执行时,计算机能够执行上述各方法所提供的数据传输方法,该方法包括:通过数据集组件接收用户输入的第一数据,将第一数据进行预处理后发送至HTTP请求组件;通过HTTP请求组件将预处理后的第一数据转换为JSON格式的数据,得到第二数据,并将第二数据通过HTTP的请求参数POST提交到服务端,服务端是基于JAVA开发的;通过HTTP请求组件接收服务端发送的返回结果,对返回结果进行处理,得到显示数据,将显示数据发送至数据集组件,通过数据集组件显示显示数据,返回结果为JSON格式的字符数据。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的数据传输方法,该方法包括:通过数据集组件接收用户输入的第一数据,将第一数据进行预处理后发送至HTTP请求组件;通过HTTP请求组件将预处理后的第一数据转换为JSON格式的数据,得到第二数据,并将第二数据通过HTTP的请求参数POST提交到服务端,服务端是基于JAVA开发的;通过HTTP请求组件接收服务端发送的返回结果,对返回结果进行处理,得到显示数据,将显示数据发送至数据集组件,通过数据集组件显示显示数据,返回结果为JSON格式的字符数据。
以上所描述的装置实施例仅仅是示意性的,其中上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分上述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种数据传输方法,其特征在于,应用于基于Delphi开发的客户端或富客户端,包括:
通过数据集组件接收用户输入的第一数据,将所述第一数据进行预处理后发送至HTTP请求组件;
通过所述HTTP请求组件将预处理后的所述第一数据转换为JSON格式的数据,得到第二数据,并将所述第二数据通过HTTP的请求参数POST提交到服务端,所述服务端是基于JAVA开发的;
通过所述HTTP请求组件接收所述服务端发送的返回结果,对所述返回结果进行处理,得到显示数据,将所述显示数据发送至所述数据集组件,通过所述数据集组件显示所述显示数据,所述返回结果为JSON格式的字符数据;
其中,所述返回结果包括数据值、数据类型、数据长度以及数据标识信息,以及
所述通过所述HTTP请求组件接收所述服务端发送的返回结果,对所述返回结果进行处理,得到显示数据,包括:
通过数据标识信息判断所述显示数据是否为参数结果或者数据集结果;
若所述数据标识信息为参数结果,则将所述返回结果中的数据值转换为对应所述数据集组件的格式的值,并根据所述数据类型转换为对应Delphi的数据类型;
若所述数据标识信息为数据集结果,则将所述返回结果中的数据值转换为对应所述数据集组件的格式的值,并根据所述数据类型和所述数据长度转换为对应Delphi的数据类型和数据长度;
所述第一数据包括参数数据和/或表格数据;
其中,所述通过数据集组件接收用户输入的第一数据,包括:
通过TjsonClientDataSet组件的TParams属性接收所述参数数据;
通过TjsonClientDataSet组件的DataSet属性接收所述表格数据。
2.根据权利要求1所述的数据传输方法,其特征在于,所述HTTP请求组件包括TjsonConnection组件,所述TjsonConnection组件继承于TCustomRemoteServer组件,实现了IAppServer接口;
所述数据集组件包括TjsonClientDataSet组件,所述TjsonClientDataSet组件继承于TCustomClientDataSet组件。
3.根据权利要求1所述的数据传输方法,其特征在于,所述通过数据集组件接收用户输入的第一数据,将所述第一数据进行预处理,包括:
通过所述数据集组件接收用户输入的第一数据,判断所述第一数据是否为参数数据或者表格数据;
若所述第一数据为参数数据,则根据预设的第一规则将所述参数数据进行字符串处理;
若所述第一数据为表格数据,则根据预设的第二规则将所述表格数据进行字符串处理。
4.根据权利要求1-3任一所述的数据传输方法,其特征在于,所述通过所述数据集组件显示所述显示数据,包括:
若所述数据标识信息为参数结果,所述数据集组件将所述显示数据进行处理后,由数据输出控件显示所述显示数据;
若所述数据标识信息为数据集结果,所述数据集组件将所述显示数据进行处理后,由表格控件显示所述显示数据。
5.一种数据传输方法,其特征在于,应用于基于JAVA开发的服务端,包括:
通过接收数据组件接收第二数据,所述第二数据是通过HTTP的请求参数POST提交的;将所述第二数据进行处理,得到第三数据,所述第三数据为对应JAVA语言不同数据结构对象的数据,并将所述第三数据提交至业务服务组件;
所述业务服务组件根据所述第三数据进行业务处理,得到第四数据,所述第四数据为对应JAVA语言不同数据结构对象的数据;
通过序列化组件将所述第四数据转换为JSON格式的数据,并序列化封装,得到对应客户端的返回结果,发送所述返回结果至所述客户端,所述客户端是基于Delphi开发的;
其中,所述返回结果包括数据值、数据类型、数据长度以及数据标识信息;
所述将所述第二数据进行处理,得到第三数据,包括:
将所述第二数据进行截取、解析、转换和反序列化,得到第三数据。
6.一种数据传输装置,其特征在于,应用于基于Delphi开发的客户端或富客户端,包括:
数据集组件,用于接收用户输入的第一数据,将所述第一数据进行预处理后发送至HTTP请求组件;
所述HTTP请求组件,用于将预处理后的所述第一数据转换为JSON格式的数据,得到第二数据,并将所述第二数据通过HTTP的请求参数POST提交到服务端,所述服务端是基于JAVA开发的;
所述HTTP请求组件,还用于接收所述服务端发送的返回结果,对所述返回结果进行处理,得到显示数据,将所述显示数据发送至所述数据集组件,通过所述数据集组件显示所述显示数据,所述返回结果为JSON格式的字符数据;
其中,所述返回结果包括数据值、数据类型、数据长度以及数据标识信息,以及
所述HTTP请求组件还用于:
通过数据标识信息判断所述显示数据是否为参数结果或者数据集结果;
若所述数据标识信息为参数结果,则将所述返回结果中的数据值转换为对应所述数据集组件的格式的值,并根据所述数据类型转换为对应Delphi的数据类型;
若所述数据标识信息为数据集结果,则将所述返回结果中的数据值转换为对应所述数据集组件的格式的值,并根据所述数据类型和所述数据长度转换为对应Delphi的数据类型和数据长度;
所述第一数据包括参数数据和/或表格数据;
其中,所述通过数据集组件接收用户输入的第一数据,包括:
通过TjsonClientDataSet组件的TParams属性接收所述参数数据;
通过TjsonClientDataSet组件的DataSet属性接收所述表格数据。
7.一种数据传输装置,其特征在于,应用于基于JAVA开发的服务端,包括:
接收数据组件,用于接收第二数据,所述第二数据是通过HTTP的请求参数POST提交的;将所述第二数据进行处理,得到第三数据,所述第三数据为对应JAVA语言不同数据结构对象的数据,并将所述第三数据提交至业务服务组件;
所述业务服务组件,用于根据所述第三数据进行业务处理,得到第四数据,所述第四数据为对应JAVA语言不同数据结构对象的数据;
序列化组件,用于将所述第四数据转换为JSON格式的数据,并序列化封装,得到对应客户端的返回结果,发送所述返回结果至所述客户端,所述客户端是基于Delphi开发的;
其中,所述返回结果包括数据值、数据类型、数据长度以及数据标识信息;
所述将所述第二数据进行处理,得到第三数据,包括:
将所述第二数据进行截取、解析、转换和反序列化,得到第三数据。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4或如权利要求5任一项所述的数据传输方法的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4或如权利要求5任一项所述的数据传输方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111118794.8A CN113572858B (zh) | 2021-09-24 | 2021-09-24 | 一种数据传输方法、装置、设备、介质和产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111118794.8A CN113572858B (zh) | 2021-09-24 | 2021-09-24 | 一种数据传输方法、装置、设备、介质和产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113572858A CN113572858A (zh) | 2021-10-29 |
CN113572858B true CN113572858B (zh) | 2022-01-14 |
Family
ID=78174226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111118794.8A Active CN113572858B (zh) | 2021-09-24 | 2021-09-24 | 一种数据传输方法、装置、设备、介质和产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113572858B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114500690B (zh) * | 2022-02-15 | 2023-08-18 | 平安科技(深圳)有限公司 | 接口数据处理方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101895431A (zh) * | 2010-08-20 | 2010-11-24 | 烽火通信科技股份有限公司 | 一种基于RIA的高性能Web传输网管系统及实现方法 |
CN103309660A (zh) * | 2013-05-27 | 2013-09-18 | 北京尚友通达信息技术有限公司 | 移动应用跨平台开发方法 |
CN105307019A (zh) * | 2015-10-28 | 2016-02-03 | 四川长虹电器股份有限公司 | 数字电视接收机功能调用的方法 |
CN105872083A (zh) * | 2016-05-19 | 2016-08-17 | 湖州微未信息科技有限公司 | 一种支持不同类型客户端访问服务器的方法、服务器及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10375558B2 (en) * | 2017-04-24 | 2019-08-06 | Rapidsos, Inc. | Modular emergency communication flow management system |
-
2021
- 2021-09-24 CN CN202111118794.8A patent/CN113572858B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101895431A (zh) * | 2010-08-20 | 2010-11-24 | 烽火通信科技股份有限公司 | 一种基于RIA的高性能Web传输网管系统及实现方法 |
CN103309660A (zh) * | 2013-05-27 | 2013-09-18 | 北京尚友通达信息技术有限公司 | 移动应用跨平台开发方法 |
CN105307019A (zh) * | 2015-10-28 | 2016-02-03 | 四川长虹电器股份有限公司 | 数字电视接收机功能调用的方法 |
CN105872083A (zh) * | 2016-05-19 | 2016-08-17 | 湖州微未信息科技有限公司 | 一种支持不同类型客户端访问服务器的方法、服务器及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113572858A (zh) | 2021-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7509649B2 (en) | System and method for conversion of generic services' applications into component based applications for devices | |
US8108830B2 (en) | System and method for building wireless applications with intelligent mapping between user interface and data components | |
US6847974B2 (en) | Method and apparatus for intelligent data assimilation | |
US7814404B2 (en) | System and method for applying workflow of generic services to component based applications for devices | |
US20040015891A1 (en) | System and method for an interoperability framework | |
CN105872083A (zh) | 一种支持不同类型客户端访问服务器的方法、服务器及系统 | |
SG172622A1 (en) | System and method for building wireless applications with intelligent mapping between user interface and data components | |
US10313421B2 (en) | Providing Odata service based on service operation execution flow | |
CN110109983B (zh) | 一种操作Redis数据库的方法和装置 | |
CN113572858B (zh) | 一种数据传输方法、装置、设备、介质和产品 | |
CA2538561C (en) | System and method for conversion of web services applications into component based applications for devices | |
US8972487B2 (en) | Automated framework for testing enterprise services consumer technologies | |
CN110764769B (zh) | 处理用户请求的方法和装置 | |
KR102407941B1 (ko) | Rpc에 기반하여 외부 장치의 함수 또는 프로시저를 호출하는 전자 장치가 사용자 인터페이스를 생성하는 방법, 그 컴퓨터 프로그램 및 그 전자 장치 | |
CN113992641A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN113268360A (zh) | 请求处理方法、装置、服务器及存储介质 | |
CN113515285A (zh) | 生成实时计算逻辑数据的方法和装置 | |
US7606785B1 (en) | Concurrent a-box and t-box generation for use in web ontology language (OWL) database and knowledge base construction | |
CA2538531C (en) | System and method for applying workflow of generic services to component based applications for devices | |
JP2003242127A (ja) | 業務統合システム | |
US11860715B2 (en) | Messaging for OData error targets | |
CN112653745B (zh) | 一种可配置的消息推送方法和装置 | |
CN116541053A (zh) | 开发环境的保存方法、调用方法及相关装置 | |
CN110019030B (zh) | 分割文件的方法和装置 | |
KR20050065050A (ko) | 기업 간 상호연동 기능을 가지는 기업대기업 전자상거래시스템 및 그 방법 |
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 |