CN112187713B - 报文转换的方法、装置、计算机设备和存储介质 - Google Patents

报文转换的方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN112187713B
CN112187713B CN202010859745.9A CN202010859745A CN112187713B CN 112187713 B CN112187713 B CN 112187713B CN 202010859745 A CN202010859745 A CN 202010859745A CN 112187713 B CN112187713 B CN 112187713B
Authority
CN
China
Prior art keywords
data
message
converted
determining
format
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
CN202010859745.9A
Other languages
English (en)
Other versions
CN112187713A (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.)
Suning Cloud Computing Co Ltd
Original Assignee
Suning Cloud Computing Co Ltd
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 Suning Cloud Computing Co Ltd filed Critical Suning Cloud Computing Co Ltd
Priority to CN202010859745.9A priority Critical patent/CN112187713B/zh
Publication of CN112187713A publication Critical patent/CN112187713A/zh
Priority to CA3128803A priority patent/CA3128803A1/en
Application granted granted Critical
Publication of CN112187713B publication Critical patent/CN112187713B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets

Abstract

本申请涉及一种报文转换的方法、装置、计算机设备和存储介质,所述方法包括:获取第一报文的第一报文格式和第一报文内容;确定报文转换规则,报文转换规则用于指示按照预设转换规则将第一报文转换成第二报文;基于第一报文格式并根据报文转换规则对第一报文内容进行信息处理,得到第二报文的第二报文内容;确定第二报文对应的脚本语言的解析算法,根据解析算法对第二报文内容进行解析,得到脚本语言的语言对象。上述方法能够减少接口维护工作量并且能够提高系统脚本开发效率的。

Description

报文转换的方法、装置、计算机设备和存储介质
技术领域
本申请涉及报文处理技术领域,特别是涉及一种报文转换的方法、装置、计算机设备和存储介质。
背景技术
在实际项目开发中,项目系统的软件需要访问其他系统提供的服务,但项目系统的软件发送请求的报文并不适合其他系统的自动化脚本的编写和校验。常用的解决方案为:针对被访问系统的接收访问请求的各接口进行独立设置,由开发人员根据接口接收到的报文类型以及报文格式等设置对应的报文转换方法,并对接口接收到的报文进行案例编写,从而实现系统间的数据访问。
然而,对于被访问系统而言,随着业务需求的增加,被访问系统需要增加更多的接口以接收更多的访问请求。每增加一个接口就需要针对该接口接收的访问请求的报文设置报文转换方法并进行案例编写,增加了自动化脚本维护的工作量,同时也导致系统开发的研发效率低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够减少接口维护工作量并且能够提高系统脚本开发效率的报文转换的方法、装置、计算机设备和存储介质。
一种报文转换的方法,该方法包括:获取第一报文的第一报文格式和第一报文内容;确定报文转换规则,报文转换规则用于指示按照预设转换规则将第一报文转换成第二报文;基于第一报文格式并根据报文转换规则对第一报文内容进行信息处理,得到第二报文的第二报文内容;确定第二报文对应的脚本语言的解析算法,根据解析算法对第二报文内容进行解析,得到脚本语言的语言对象。
在其中一个实施例中,确定报文转换规则,包括:根据第一报文格式确定第一报文中各数据层级之间的缩进格式;获取第二报文的第二报文格式;根据缩进格式以及第二报文格式确定第一报文内容的数据封装形式;根据数据封装形式确定报文转换规则。
在其中一个实施例中,根据缩进格式以及第二报文格式确定第一报文内容的数据封装形式,包括:根据缩进格式确定第一报文内容中相同缩进量的第一数据;根据第二报文格式确定数据封装形式中包含数据名称、数据类型以及数据值的格式;确定数据封装形式包括将第一数据按照数据名称、数据类型以及数据值的格式进行数据封装。
在其中一个实施例中,根据缩进格式以及第二报文格式确定第一报文内容的数据封装形式,包括:根据缩进格式获取第一报文内容中无缩进且非结束标识的第二数据;根据第二报文格式确定数据封装形式中包含数据名称、数据类型以及数据值的格式;确定第一报文的数据封装形式包括将第二数据按照数据名称、数据类型、数据值以及参数类型的格式进行数据封装。
在其中一个实施例中,一种报文转换的方法还包括:若第一数据的数据类型为数据表类型,确定数据封装形式还包括将第一数据的数据值根据表行进行数据封装;若第一数据的数据类型为结构体类型,确定数据封装形式还包括将第一数据的数据值进行同行封装。
在其中一个实施例中,根据数据封装形式确定报文转换规则,包括:根据缩进格式获取第一报文的数据缩进量;根据数据缩进量确定第一报文内容的数据存储方式;根据数据存储方式以及数据封装形式确定报文转换规则。
在其中一个实施例中,基于第一报文格式并根据报文转换规则对第一报文内容进行信息处理,得到第二报文的第二报文内容,包括:基于第一报文格式确定的第一报文的缩进格式并根据报文转换规则对第一报文进行信息处理,得到待转换内容;将待转换内容的第一字符转换为第二报文的第二字符,得到第二报文内容。
在其中一个实施例中,根据数据缩进量确定第一报文内容的数据存储方式,包括:根据数据缩进量确定缩进量相同的第二数据;确定数据存储方式包括将第二数据存储到相同的列表中。
在其中一个实施例中,确定数据存储方式包括将第二数据存储到相同的列表中,包括:获取第一报文内容中各第二数据的缩进量;根据各第二数据的缩进量确定各第二数据对应的键值;确定数据存储方式包括以各第二数据对应的键值为容器的键、以各第二数据对应的列表为容器的值的方式将第一报文内容存储到容器,容器为键与值关联的且用于存储第一报文内容的存储单元。
在其中一个实施例中,解析算法用于指示按照报文内容中数据对象的属性信息将报文内容中数据对象映射成抽象类;根据解析算法对第二报文内容进行解析,得到脚本语言的语言对象,包括:获取第二报文内容中待转换数据对象并获取待转换数据对象的属性信息;根据属性信息获取待转换数据的数据类型;根据数据类型构造待转换数据的数据对象,并根据待转换数据的数据名称和数据值初始化待转换数据的数据对象以将待转换数据的数据对象映射成抽象类,得到脚本语言的语言对象。
在其中一个实施例中,待转换数据的数据类型包括字段类型、数据表类型或结构体类型;根据数据类型构造待转换数据的数据对象,并根据待转换数据的数据名称和数据值初始化待转换数据的数据对象以将待转换数据的数据对象映射成抽象类,得到脚本语言的语言对象,包括:若数据类型为字段类型,根据字段类型构造待转换数据的第一数据对象,并根据待转换数据的数据名称和数据值初始化第一数据对象,得到脚本语言的语言对象;若数据类型为数据表类型,根据数据表类型构造待转换数据的第二数据对象,并根据待转换数据的数据名称和数据值初始化第二数据对象,得到脚本语言的语言对象;若数据类型为结构体类型,根据结构体类型构造待转换数据的第三数据对象,并根据待转换数据的数据名称和数据值初始化第三数据对象,得到脚本语言的语言对象。
一种报文转换的装置,该装置包括:第一获取模块,用于获取第一报文的第一报文格式和第一报文内容;确定模块,用于确定报文转换规则,报文转换规则用于指示按照预设转换规则将第一报文转换成第二报文;处理模块,用于基于第一报文格式并根据报文转换规则对第一报文内容进行信息处理,得到第二报文的第二报文内容;解析模块,用于确定第二报文对应的脚本语言的解析算法,根据解析算法对第二报文内容进行解析,得到脚本语言的语言对象。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一实施例方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例方法的步骤。
上述报文转换的方法、装置、计算机设备和存储介质,被访问系统获取请求访问系统发送的第一报文的第一报文格式和第一报文内容,进而确定报文转换规则,通过报文转换规则并基于第一报文的第一报文格式可以将第一报文内容转换为被访问系统的第二报文的第二报文内容。因此,可以自动化实现不同系统间不同报文的转换。进一步地,被访问系统确定脚本语言的解析算法,根据解析算法对第二报文内容进行解析,从而得到脚本语言的语言对象。因此,可实现将请求访问系统发送的第一报文自动化解析成第一报文对应在被访问系统的对象,也即是被访问系统的脚本语言的语言对象,从而无需人工干预即可实现被访问系统自动化识别接收到的报文。对被访问系统而言,不管哪个接口接收到什么报文类型或者什么报文格式的报文,均可采用一套方法将访问请求对应的报文自动化转换成其对应的语言对象,无需针对不同接口接收不同类型的报文设置不同的报文转换方法,减少了接口维护工作量并且能够提高系统脚本开发效率。
附图说明
图1为一个实施例中一种报文转换的方法的应用环境图;
图2为一个实施例中一种报文转换的方法的流程示意图;
图3为一个实施例中S104的流程示意图;
图4为一个实施例中SAP报文的报文内容显示示意图;
图5为一个实施例中SAP报文转换为JSON报文的报文内容显示示意图;
图6为一个实施例中JSON报文的报文解析的流程示意图;
图7为一个实施例中SAP报文的参数的界面示意图;
图8为一个实施例中一种报文转换的方法的第一转换结果示意图;
图9为一个实施例中一种报文转换的方法的第二转换结果示意图;
图10为一个实施例中一种报文转换的装置的结构框图;
图11为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。同时,本申请中涉及的英文表达,小写英文表达方式与其对应的大写英文表达方式表示同样的意义。
本申请提供的一种报文转换的方法,应用于如图1所示的应用环境中。被访问系统100用于执行本申请的一种报文转换的方法。具体地,被访问系统100接收请求访问系统集群200发送的访问请求。其中,如图1所示,请求访问系统集群200可以包括请求访问系统202、请求访问系统204、请求访问系统206等。请求访问系统集群200中各请求访问系统发送的访问请求的报文格式和报文类别可以不相同。被访问系统100接收到请求访问系统集群200发送的访问请求时,获取访问请求的第一报文的第一报文格式和第一报文内容,同时确定报文转换规则,报文转换规则用于指示按照预设转换规则将第一报文转换成第二报文。进一步地,被访问系统100基于第一报文格式并根据报文转换规则对第一报文内容进行信息处理,得到第二报文的第二报文内容。最终,确定第二报文对应的脚本语言的解析算法,根据解析算法对第二报文内容进行解析,得到脚本语言的语言对象。因此,不管请求访问系统集群200中各请求访问系统发送的访问请求的报文是什么报文类型或者什么报文格式,均可采用一套方法将访问请求对应的报文自动化转换成其对应的语言对象,无需针对不同接口接收不同类型的报文设置不同的报文转换方法,减少了接口维护工作量并且能够提高系统脚本开发效率。
在一个实施例中,如图2所示,提供了一种报文转换的方法,以该方法应用于图1中的被访问系统100为例进行说明,包括以下步骤:
S102,获取第一报文的第一报文格式和第一报文内容。
在本实施例中,第一报文按照第一报文格式对第一报文内容进行编写。第一报文可以是SAP系统SAP报文。SAP报文的报文格式规定出SAP报文内容的各数据层级之间使用TAB逐层缩进的方式进行编写。被访问系统通过SAP接口接收SAP报文,并获取SAP报文的报文格式和报文内容。例如,SAP报文包括以下内容:
IMPORT:
n1(FIELD):aa
n2(FIELD):bb
TABLE:
t1:1Rows:
(TABLE_ROW):2Fields:
key1(FIELD):0
key2(FIELD):abc。
S104,确定报文转换规则,报文转换规则用于指示按照预设转换规则将第一报文转换成第二报文。
在本实施中,被访问系统中预先设置有报文转换规则。或者,被访问系统接收来自配置服务器发送的报文转换规则。被访问系统根据该报文转换规则对被访问系统内各接口接收到的报文进行报文转换。具体地,报文转换规则用于指示按照预设转换规则将第一报文转换成第二报文。报文转换规则可以是用于指示按照第一报文的第一报文格式以及第二报文的第二报文格式将第一报文的第一报文内容进行转换处理。
S106,基于第一报文格式并根据报文转换规则对第一报文内容进行信息处理,得到第二报文的第二报文内容。
在本实施例中,被访问系统基于第一报文格式并按照报文转换规则将第一报文的报文内容进行信息处理。信息处理后得到第二报文的第二报文内容。其中,第二报文的第二报文格式为被访问系统指定的报文格式,第二报文的第二报文内容为被访问系统可识别的数据信息。被访问系统通过报文转换规则将任一接口接收到的任一第一报文转换为被访问系统内设定格式的第二报文以及将第一报文的第一报文内容转换为被访问系统可识别的第二报文的第二报文内容。具体地,第二报文可以是JSON报文。第二报文内容可以是JSON字符串构成的内容。
S108,确定第二报文对应的脚本语言的解析算法,根据解析算法对第二报文内容进行解析,得到脚本语言的语言对象。
在本实施例中,第一报文转换到第二报文之后,被访问系统还无法直接根据第二报文的第二报文内容确定出对应的第一报文中的数据对象,也即是还无法响应第一报文对应的访问请求。此时,被访问系统内将第二报文与脚本语言的解析算法进行关联。当第一报文转换到第二报文之后,被访问系统采用该解析算法对第二报文内容进行解析,从而得到脚本语言的语言对象。被访问系统能够根据该脚本语言的语言对象确定出第一报文对应的语言对象,并根据该脚本语言的语言对象响应第一报文对应的访问请求。具体地,第二报文为JSON报文时,脚本语言为JSON语言。脚本语言的解析算法可以是用于指示将JSON报文映射为对应抽象类的算法。最终得到的脚本语言的语言对象为包含多个抽象类的数据对象。
上述报文转换的方法、装置、计算机设备和存储介质,被访问系统获取请求访问系统发送的第一报文的第一报文格式和第一报文内容,进而确定报文转换规则,通过报文转换规则并基于第一报文的第一报文格式可以将第一报文内容转换为被访问系统的第二报文的第二报文内容。因此,可以自动化实现不同系统间不同报文的转换。进一步地,被访问系统确定脚本语言的解析算法,根据解析算法对第二报文内容进行解析,从而得到脚本语言的语言对象。因此,可实现将请求访问系统发送的第一报文自动化解析成第一报文对应在被访问系统的对象,也即是被访问系统的脚本语言的语言对象,从而无需人工干预即可实现被访问系统自动化识别接收到的报文。对被访问系统而言,不管哪个接口接收到什么报文类型或者什么报文格式的报文,均可采用一套方法将访问请求对应的报文自动化转换成其对应的语言对象,无需针对不同接口接收不同类型的报文设置不同的报文转换方法,减少了接口维护工作量并且能够提高系统脚本开发效率。
在一实施例中,如图3所示,S104包括以下步骤:
S1042,根据第一报文格式确定第一报文中各数据层级之间的缩进格式。
S1044,获取第二报文的第二报文格式。
S1046,根据缩进格式以及第二报文格式确定第一报文内容的数据封装形式。
S1048,根据数据封装形式确定报文转换规则。
在本实施例中,被访问系统针对各接口设定报文转换规则,用于指示将接口接收到的第一报文转换为第二报文。此时,第二报文的第二报文格式为被访问系统预先配置确定。具体地,确定报文转换规则包括:根据第一报文格式确定第一报文中各数据层级之间的缩进格式,根据缩进格式以及第二报文格式确定第一报文内容的数据封装形式,最终根据数据封装形式确定报文转换规则。也即是,被访问系统在采用报文转换规则将第一报文转换成第二报文时,根据第一报文中各数据层级之间的缩进格式以及第二报文的第二报文格式确定第一报文内容的数据封装形式,被访问系统根据第一报文内容的数据封装形式对第一报文内容进行数据封装,以进行第一报文的转换。因此,能够提高第一报文转换成第二报文的准确性。
在一实施例中,S1046包括:根据缩进格式确定第一报文内容中相同缩进量的第一数据;根据第二报文格式确定数据封装形式中包含数据名称、数据类型以及数据值的格式;确定数据封装形式包括将第一数据按照数据名称、数据类型以及数据值的格式进行数据封装。
在本实施例中,报文转换规则中确定出:将第一报文内容中具有相同缩进量的数据作为第一数据,并将第一数据按照数据名称、数据类型以及数据值的格式进行数据封装。其中,第一数据可以是多个,多个第一数据对应的缩进量不相同。例如,如图4所示,第一报文内容中缩进量包括N1 个字符的缩进量、N2个字符的缩进量以及N3个字符的缩进量等。第一数据包括N1个字符的缩进量对应的第一数据A、N2个字符的缩进量对应的第一数据B和N3个字符的缩进量对应的第一数据C。具体地,可以按照不同的缩进量进行分级。缩进量越小,对应的等级越大。例如,第一级的缩进量小于第二级的缩进量,第一级大于第二级。依次类推。设置第一级时将其他级数看做一个整体,作为第一级的数据值。设置第二级时将除其他级数低的看做一个整体,作为第二级的数据值。依次类推。因此,在第一报文转换成第二报文时,可以在第二报文中确保第一报文内容中数据的关联关系,提高第一报文转换成第二报文的准确率。
在一实施例中,S1046包括:根据缩进格式获取第一报文内容中无缩进且非结束标识的第二数据;根据第二报文格式确定数据封装形式中包含数据名称、数据类型以及数据值的格式;确定第一报文的数据封装形式包括将第二数据按照数据名称、数据类型、数据值以及参数类型的格式进行数据封装。
在本实施例中,第一报文内容中无缩进且非结束标识的第二数据可以作为第一报文内容的初始内容读取的标识数据,此时第二数据的数据封装时需要增加参数类型的标识,用以标识第一报文内容的参数类型。被访问系统根据第一报文内容的参数类型可以读取到其对应的第二报文的内容。因此,提高了被访问系统数据识别的准确性。
具体地,第一报文为SAP报文,第二报文为JSON报文。参见图4所示,假设SAP报文中第零级的缩进量为零,且存在“TABLE:”并且非 SAP报文中最后一行,则需要对“TABLE:”下一行的复合数据类型转换时添加“paramType”:“table”。也即是对第一级进行数据封装时表达为 {name:"t1",dataType:"table",data:[{k1:v1,k2:v2},{…}],paramType:"table"};否则不需要添加。
在一实施例中,确定数据封装形式包括将第一数据按照数据名称、数据类型以及数据值的格式进行数据封装,包括:若第一数据的数据类型为数据表类型,确定数据封装形式还包括将第一数据的数据值根据表行进行数据封装;若第一数据的数据类型为结构体类型,确定数据封装形式还包括将第一数据的数据值进行同行封装。
具体地,如图5所示。在执行数据封装时,首先转换第一级的数据。将每行数据分为名称、数据类型、值三个字段,然后使用“{name:“名称”,dataType:“数据类型”,data:“值”}”的形式封装。如果是复合数据类型table(数据表类型),则值的形式为data:[{k1:v1,k2:v2},{…}]。其中每一个{}代表一个表行。如果table中又嵌套table,则值的形式,逐层递归为data:[{k1:v1,k2:v2,k3:[{k31:v31,k32:v32},{…}]},{…}]。如果是复合数据类型struct,则值的形式为data:[{k1:v1,k2:v2}]。相对于table,struct 仅有一行。另外如果struct(结构体类型)中嵌套table,处理方式同table。因此,可将第一报文中不同数据类型的数据进行对应的封装处理,从而能够准确地将第一报文转换为第二报文。
在一实施例中,S106包括:基于第一报文格式确定的第一报文的缩进格式并根据报文转换规则对第一报文进行信息处理,得到待转换内容;将待转换内容的第一字符转换为第二报文的第二字符,得到第二报文内容。
在该实施例中,被访问系统按照第一报文的缩进格式并且结合报文转换规则对第一报文进行信息处理之后,得到待转换内容。待转换内容表征的是对第一报文进行格式转换后得到的内容。此时,需要将待转换内容中的第一字符转换为第二报文的第二字符。具体地,当第一报文为SAP报文,第二报文为JSON报文时,使用fastjson工具包将待转换内容转换为JSON 字符串。因此,实现了第一报文与第二报文的转换。
在一实施例中,S1048包括:根据缩进格式获取第一报文的数据缩进量;根据数据缩进量确定第一报文内容的数据存储方式;根据数据存储方式以及数据封装形式确定报文转换规则。
在本实施例中,根据第一报文的数据缩进量确定第一报文中数据的数据存储方式,并根据数据存储方式以及数据封装形式确定报文转换规则。也即是,报文转换规则包含数据存储方式和数据封装形式。
在一实施例中,根据数据缩进量确定第一报文内容的数据存储方式,包括:根据数据缩进量确定缩进量相同的第二数据;确定数据存储方式包括将第二数据存储到相同的列表中。
具体地,被访问系统获取SAP报文的最大缩进量,将最大缩进量作为 SAP报文的最大深度。被访问系统根据最大深度循环遍历SAP报文,并根据SAP报文中每行数据的缩进量进行不同的分级。其中,缩进量可以是 TAB缩进深度。进一步地,将缩进量相同的作为同一级,将级数相同的数据存放在同一列表中。其中,列表可以是List列表。
优选地,确定数据存储方式包括将第二数据存储到相同的列表中,包括:获取第一报文内容中各第二数据的缩进量;根据各第二数据的缩进量确定各第二数据对应的键值;确定数据存储方式包括以各第二数据对应的键值为容器的键、以各第二数据对应的列表为容器的值的方式将第一报文内容存储到容器,容器为键与值关联的且用于存储第一报文内容的存储单元。
具体地,将缩进量相同的第二数据存放在同一列表中,同时以缩进量确定出该第二数据的级数,以级数作为键值,以列表作为值的方式存储到容器中。列表可以是List列表,容器可以是字典MAP容器。例如:为除第一级以外的其他级别的列表分别定义一个全局计数器,用于后续处理过程中标记各级别的列表已经处理过的数据项。进一步地,循环遍历第一级的数据。针对第一级的列表中的每个数据项,对应构造一个MAP容器,用于保存转换后的数据。如果遍历的第一级的数据项是复合数据类型table (数据表类型),则根据SAP报文中的指示的行数和每行指示的数据项顺序读取第二级的数据和第三级的数据,同时移动对应级别的列表的全局指针,使其指向下一次读取该级别的列表的索引。如果第三级的数据项是复合数据类型table,则递归解析。类似的,如果遍历的第一级的数据项是复合数据类型struct(结构体类型),处理方式类似table。最终把每个MAP 容器都添加有一个List列表中。因此,实现了对第一报文的第一报文内容中数据的转换处理。
在一实施例中,解析算法用于指示按照报文内容中数据对象的属性信息将报文内容中数据对象映射成抽象类。S108包括:获取第二报文内容中待转换数据对象并获取待转换数据对象的属性信息;根据属性信息获取待转换数据的数据类型;根据数据类型构造待转换数据的数据对象,并根据待转换数据的数据名称和数据值初始化待转换数据的数据对象以将待转换数据的数据对象映射成抽象类,得到脚本语言的语言对象。
在本实施例中,第一报文可以为SAP报文,第二报文可以为JSON报文。经过转换后得到的第二报文中包含有待转换数据对象。也即是,被访问系统将第一报文中的数据对象转换到第二报文中的待转换数据对象,第二报文中的待转换数据对象的形式以及格式可为被访问系统识别。但被访问系统在具体识别时,需要将待转换数据对象转换为具体的脚本语言的语言对象,例如JSON对象。具体地,第二报文为JSON报文。对JSON报文进行解析。把JSON报文映射成List<SAPEntity>。其中,SAPEntity是上述List列表中每个项的抽象封装类。具体地,SAPEntity根据转换后JSON 列表中每个成员的属性,将其抽象出一个映射类。利用fastjson工具包中的方法把JSON字符反序列化成List<SAPEntity>。需要说明的是,被访问系统根据属性信息获取待转换数据的数据类型,根据数据类型构造待转换数据的数据对象,并根据待转换数据的数据名称和数据值初始化待转换数据的数据对象。也即是,不同的数据类型,其构造的数据对象不一样。最终根据初始化待转换数据的数据对象的结果得到脚本语言的语言对象。因此,可实现被访问系统对不同报文中包含的不同的数据类型的数据对象的识别,提高被访问系统的数据识别的准确性。
在一实施例中,待转换数据的数据类型包括字段类型、数据表类型或结构体类型。根据数据类型构造待转换数据的数据对象,并根据待转换数据的数据名称和数据值初始化待转换数据的数据对象以将待转换数据的数据对象映射成抽象类,得到脚本语言的语言对象,包括:若数据类型为字段类型,根据字段类型构造待转换数据的第一数据对象,并根据待转换数据的数据名称和数据值初始化第一数据对象,得到脚本语言的语言对象;若数据类型为数据表类型,根据数据表类型构造待转换数据的第二数据对象,并根据待转换数据的数据名称和数据值初始化第二数据对象,得到脚本语言的语言对象;若数据类型为结构体类型,根据结构体类型构造待转换数据的第三数据对象,并根据待转换数据的数据名称和数据值初始化第三数据对象,得到脚本语言的语言对象。
具体地,参见图6所示。图6中小写英文表达方式与其对应的大写英文表达方式表示同样的意义。被访问系统解析JSON报文,将JSON报文映射成List<SAPEntity>,SAPEntity是列表中每个项的抽象封装类。 List<SAPEntity>表示SAPEntity列表。进一步地,被访问系统遍历SAPEntity 列表,获取每个SAPEntity列表的datatype(数据类型),根据不同的datatype 创建相应的SAP数据对象。例如SapJcoField、SapJcoTable、SapJcoStructure。SapJcoField、SapJcoTable、SapJcoStructure分别表示不同数据类型的数据对象,SapJcoField表示字段类型的数据对象,SapJcoTable表示数据表类型的数据对象,SapJcoStructure表示结构类型的数据对象。进一步地,根据name(名称)和data(值)初始化数据对象。如果data中嵌套复合数据类型Table,则逐层递归解析。最后,创建并输出RsfSapInput对象。 RsfSapInput也即是最终的脚本语言的语言对象。具体地,创建RsfSapInput 对象,采用上述方法初始化数据对象,并根据传入的paramType(参数类型)选择不同的初始化方法,初始化相应的RsfSapInput对象。
在实际应用场景中,还可将转换后的报文拷贝到请求报文文本框,进一步填入其他必须参数,点击执行SAP->RSF交互。交互过程参见图7所示,执行结果参见图8和图9所示。
综上,本申请的一种报文转换的方法,在应用过程中可带来以下效果:
1)节省人工:传统的方案涉及到自动化关键字的开发、调试工作,如新增30个SAP接口,工作量需要9人/天;使用新方案后,则避免了针对每个SAP接口关键字的开发和调试,直接使用按照通用规则开发的新关键字编写自动化脚本,节省人效9人/天。
2)易维护性:相比传统的方案,目前只需要维护一个通用关键字。
3)降低研发和学习成本:摒弃了每个接口重新开发一套转换方法的工作量。本申请的一种报文转换的方法具备通用性,测试人员也只需学习一次即可。
4)可移植性强:可以被市面上各类自动化工具引用。
应该理解的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,附图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本申请还提供一种报文转换的装置,如图10所示,该装置包括第一获取模块10、确定模块20、处理模块30以及解析模块40。第一获取模块10 用于获取第一报文的第一报文格式和第一报文内容;确定模块20用于确定报文转换规则,报文转换规则用于指示按照预设转换规则将第一报文转换成第二报文;处理模块30用于基于第一报文格式并根据报文转换规则对第一报文内容进行信息处理,得到第二报文的第二报文内容;解析模块40 用于确定第二报文对应的脚本语言的解析算法,根据解析算法对第二报文内容进行解析,得到脚本语言的语言对象。
在其中一个实施例中,确定模块20具体还用于根据第一报文格式确定第一报文中各数据层级之间的缩进格式;获取第二报文的第二报文格式;根据缩进格式以及第二报文格式确定第一报文内容的数据封装形式;根据数据封装形式确定报文转换规则。
在其中一个实施例中,确定模块20具体还用于根据缩进格式确定第一报文内容中相同缩进量的第一数据;根据第二报文格式确定数据封装形式中包含数据名称、数据类型以及数据值的格式;确定数据封装形式包括将第一数据按照数据名称、数据类型以及数据值的格式进行数据封装。
在其中一个实施例中,确定模块20具体还用于根据缩进格式获取第一报文内容中无缩进且非结束标识的第二数据;根据第二报文格式确定数据封装形式中包含数据名称、数据类型以及数据值的格式;确定第一报文的数据封装形式包括将第二数据按照数据名称、数据类型、数据值以及参数类型的格式进行数据封装。
在其中一个实施例中,确定模块20具体还用于若第一数据的数据类型为数据表类型,确定数据封装形式还包括将第一数据的数据值根据表行进行数据封装;若第一数据的数据类型为结构体类型,确定数据封装形式还包括将第一数据的数据值进行同行封装。
在其中一个实施例中,确定模块20具体还用于根据缩进格式获取第一报文的数据缩进量;根据数据缩进量确定第一报文内容的数据存储方式;根据数据存储方式以及数据封装形式确定报文转换规则。
在其中一个实施例中,处理模块30具体还用于基于第一报文格式确定的第一报文的缩进格式并根据报文转换规则对第一报文进行信息处理,得到待转换内容;将待转换内容的第一字符转换为第二报文的第二字符,得到第二报文内容。
在其中一个实施例中,确定模块20具体还用于根据数据缩进量确定缩进量相同的第二数据;确定数据存储方式包括将第二数据存储到相同的列表中。
在其中一个实施例中,确定模块20具体还用于获取第一报文内容中各第二数据的缩进量;根据各第二数据的缩进量确定各第二数据对应的键值;确定数据存储方式包括以各第二数据对应的键值为容器的键、以各第二数据对应的列表为容器的值的方式将第一报文内容存储到容器,容器为键与值关联的且用于存储第一报文内容的存储单元。
在其中一个实施例中,解析算法用于指示按照报文内容中数据对象的属性信息将报文内容中数据对象映射成抽象类;解析模块40具体还用于获取第二报文内容中待转换数据对象并获取待转换数据对象的属性信息;根据属性信息获取待转换数据的数据类型;根据数据类型构造待转换数据的数据对象,并根据待转换数据的数据名称和数据值初始化待转换数据的数据对象以将待转换数据的数据对象映射成抽象类,得到脚本语言的语言对象。
在其中一个实施例中,待转换数据的数据类型包括字段类型、数据表类型或结构体类型。解析模块40具体还用于若数据类型为字段类型,根据字段类型构造待转换数据的第一数据对象,并根据待转换数据的数据名称和数据值初始化第一数据对象,得到脚本语言的语言对象;若数据类型为数据表类型,根据数据表类型构造待转换数据的第二数据对象,并根据待转换数据的数据名称和数据值初始化第二数据对象,得到脚本语言的语言对象;若数据类型为结构体类型,根据结构体类型构造待转换数据的第三数据对象,并根据待转换数据的数据名称和数据值初始化第三数据对象,得到脚本语言的语言对象。
关于报文转换的装置的具体限定可以参见上文中对于报文转换的方法的限定,在此不再赘述。上述报文转换的装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是被访问系统内的服务器,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端连接,以接收终端发送的报文。该计算机程序被处理器执行时以实现一种报文转换的方法。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取第一报文的第一报文格式和第一报文内容;确定报文转换规则,报文转换规则用于指示按照预设转换规则将第一报文转换成第二报文;基于第一报文格式并根据报文转换规则对第一报文内容进行信息处理,得到第二报文的第二报文内容;确定第二报文对应的脚本语言的解析算法,根据解析算法对第二报文内容进行解析,得到脚本语言的语言对象。
在其中一个实施例中,处理器执行计算机程序实现上述的确定报文转换规则步骤时,具体实现以下步骤:根据第一报文格式确定第一报文中各数据层级之间的缩进格式;获取第二报文的第二报文格式;根据缩进格式以及第二报文格式确定第一报文内容的数据封装形式;根据数据封装形式确定报文转换规则。
在其中一个实施例中,处理器执行计算机程序实现上述的根据缩进格式以及第二报文格式确定第一报文内容的数据封装形式步骤时,具体实现以下步骤:根据缩进格式确定第一报文内容中相同缩进量的第一数据;根据第二报文格式确定数据封装形式中包含数据名称、数据类型以及数据值的格式;确定数据封装形式包括将第一数据按照数据名称、数据类型以及数据值的格式进行数据封装。
在其中一个实施例中,处理器执行计算机程序实现上述的根据缩进格式以及第二报文格式确定第一报文内容的数据封装形式步骤时,具体实现以下步骤:根据缩进格式获取第一报文内容中无缩进且非结束标识的第二数据;根据第二报文格式确定数据封装形式中包含数据名称、数据类型以及数据值的格式;确定第一报文的数据封装形式包括将第二数据按照数据名称、数据类型、数据值以及参数类型的格式进行数据封装。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:若第一数据的数据类型为数据表类型,确定数据封装形式还包括将第一数据的数据值根据表行进行数据封装;若第一数据的数据类型为结构体类型,确定数据封装形式还包括将第一数据的数据值进行同行封装。
在其中一个实施例中,处理器执行计算机程序实现上述的根据数据封装形式确定报文转换规则步骤时,具体实现以下步骤:根据缩进格式获取第一报文的数据缩进量;根据数据缩进量确定第一报文内容的数据存储方式;根据数据存储方式以及数据封装形式确定报文转换规则。
在其中一个实施例中,处理器执行计算机程序实现上述的基于第一报文格式并根据报文转换规则对第一报文内容进行信息处理,得到第二报文的第二报文内容步骤时,具体实现以下步骤:基于第一报文格式确定的第一报文的缩进格式并根据报文转换规则对第一报文进行信息处理,得到待转换内容;将待转换内容的第一字符转换为第二报文的第二字符,得到第二报文内容。
在其中一个实施例中,处理器执行计算机程序实现上述的根据数据缩进量确定第一报文内容的数据存储方式步骤时,具体实现以下步骤:根据数据缩进量确定缩进量相同的第二数据;确定数据存储方式包括将第二数据存储到相同的列表中。
在其中一个实施例中,处理器执行计算机程序实现上述的确定数据存储方式包括将第二数据存储到相同的列表中步骤时,具体实现以下步骤:获取第一报文内容中各第二数据的缩进量;根据各第二数据的缩进量确定各第二数据对应的键值;确定数据存储方式包括以各第二数据对应的键值为容器的键、以各第二数据对应的列表为容器的值的方式将第一报文内容存储到容器,容器为键与值关联的且用于存储第一报文内容的存储单元。
在其中一个实施例中,解析算法用于指示按照报文内容中数据对象的属性信息将报文内容中数据对象映射成抽象类;处理器执行计算机程序实现上述的根据解析算法对第二报文内容进行解析,得到脚本语言的语言对象步骤时,具体实现以下步骤:获取第二报文内容中待转换数据对象并获取待转换数据对象的属性信息;根据属性信息获取待转换数据的数据类型;根据数据类型构造待转换数据的数据对象,并根据待转换数据的数据名称和数据值初始化待转换数据的数据对象以将待转换数据的数据对象映射成抽象类,得到脚本语言的语言对象。
在其中一个实施例中,待转换数据的数据类型包括字段类型、数据表类型或结构体类型;处理器执行计算机程序实现上述的根据数据类型构造待转换数据的数据对象,并根据待转换数据的数据名称和数据值初始化待转换数据的数据对象以将待转换数据的数据对象映射成抽象类,得到脚本语言的语言对象步骤时,具体实现以下步骤:若数据类型为字段类型,根据字段类型构造待转换数据的第一数据对象,并根据待转换数据的数据名称和数据值初始化第一数据对象,得到脚本语言的语言对象;若数据类型为数据表类型,根据数据表类型构造待转换数据的第二数据对象,并根据待转换数据的数据名称和数据值初始化第二数据对象,得到脚本语言的语言对象;若数据类型为结构体类型,根据结构体类型构造待转换数据的第三数据对象,并根据待转换数据的数据名称和数据值初始化第三数据对象,得到脚本语言的语言对象。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取第一报文的第一报文格式和第一报文内容;确定报文转换规则,报文转换规则用于指示按照预设转换规则将第一报文转换成第二报文;基于第一报文格式并根据报文转换规则对第一报文内容进行信息处理,得到第二报文的第二报文内容;确定第二报文对应的脚本语言的解析算法,根据解析算法对第二报文内容进行解析,得到脚本语言的语言对象。
在其中一个实施例中,计算机程序被处理器执行实现上述的确定报文转换规则步骤时,具体实现以下步骤:根据第一报文格式确定第一报文中各数据层级之间的缩进格式;获取第二报文的第二报文格式;根据缩进格式以及第二报文格式确定第一报文内容的数据封装形式;根据数据封装形式确定报文转换规则。
在其中一个实施例中,计算机程序被处理器执行实现上述的根据缩进格式以及第二报文格式确定第一报文内容的数据封装形式步骤时,具体实现以下步骤:根据缩进格式确定第一报文内容中相同缩进量的第一数据;根据第二报文格式确定数据封装形式中包含数据名称、数据类型以及数据值的格式;确定数据封装形式包括将第一数据按照数据名称、数据类型以及数据值的格式进行数据封装。
在其中一个实施例中,计算机程序被处理器执行实现上述的根据缩进格式以及第二报文格式确定第一报文内容的数据封装形式步骤时,具体实现以下步骤:根据缩进格式获取第一报文内容中无缩进且非结束标识的第二数据;根据第二报文格式确定数据封装形式中包含数据名称、数据类型以及数据值的格式;确定第一报文的数据封装形式包括将第二数据按照数据名称、数据类型、数据值以及参数类型的格式进行数据封装。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:若第一数据的数据类型为数据表类型,确定数据封装形式还包括将第一数据的数据值根据表行进行数据封装;若第一数据的数据类型为结构体类型,确定数据封装形式还包括将第一数据的数据值进行同行封装。
在其中一个实施例中,计算机程序被处理器执行实现上述的根据数据封装形式确定报文转换规则步骤时,具体实现以下步骤:根据缩进格式获取第一报文的数据缩进量;根据数据缩进量确定第一报文内容的数据存储方式;根据数据存储方式以及数据封装形式确定报文转换规则。
在其中一个实施例中,计算机程序被处理器执行实现上述的基于第一报文格式并根据报文转换规则对第一报文内容进行信息处理,得到第二报文的第二报文内容步骤时,具体实现以下步骤:基于第一报文格式确定的第一报文的缩进格式并根据报文转换规则对第一报文进行信息处理,得到待转换内容;将待转换内容的第一字符转换为第二报文的第二字符,得到第二报文内容。
在其中一个实施例中,计算机程序被处理器执行实现上述的根据数据缩进量确定第一报文内容的数据存储方式步骤时,具体实现以下步骤:根据数据缩进量确定缩进量相同的第二数据;确定数据存储方式包括将第二数据存储到相同的列表中。
在其中一个实施例中,计算机程序被处理器执行实现上述的确定数据存储方式包括将第二数据存储到相同的列表中步骤时,具体实现以下步骤:获取第一报文内容中各第二数据的缩进量;根据各第二数据的缩进量确定各第二数据对应的键值;确定数据存储方式包括以各第二数据对应的键值为容器的键、以各第二数据对应的列表为容器的值的方式将第一报文内容存储到容器,容器为键与值关联的且用于存储第一报文内容的存储单元。
在其中一个实施例中,解析算法用于指示按照报文内容中数据对象的属性信息将报文内容中数据对象映射成抽象类;计算机程序被处理器执行实现上述的根据解析算法对第二报文内容进行解析,得到脚本语言的语言对象步骤时,具体实现以下步骤:获取第二报文内容中待转换数据对象并获取待转换数据对象的属性信息;根据属性信息获取待转换数据的数据类型;根据数据类型构造待转换数据的数据对象,并根据待转换数据的数据名称和数据值初始化待转换数据的数据对象以将待转换数据的数据对象映射成抽象类,得到脚本语言的语言对象。
在其中一个实施例中,待转换数据的数据类型包括字段类型、数据表类型或结构体类型;计算机程序被处理器执行实现上述的根据数据类型构造待转换数据的数据对象,并根据待转换数据的数据名称和数据值初始化待转换数据的数据对象以将待转换数据的数据对象映射成抽象类,得到脚本语言的语言对象步骤时,具体实现以下步骤:若数据类型为字段类型,根据字段类型构造待转换数据的第一数据对象,并根据待转换数据的数据名称和数据值初始化第一数据对象,得到脚本语言的语言对象;若数据类型为数据表类型,根据数据表类型构造待转换数据的第二数据对象,并根据待转换数据的数据名称和数据值初始化第二数据对象,得到脚本语言的语言对象;若数据类型为结构体类型,根据结构体类型构造待转换数据的第三数据对象,并根据待转换数据的数据名称和数据值初始化第三数据对象,得到脚本语言的语言对象。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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 (13)

1.一种报文转换的方法,所述方法包括:
获取第一报文的第一报文格式和第一报文内容;
确定报文转换规则,所述报文转换规则用于指示按照预设转换规则将所述第一报文转换成第二报文;
基于所述第一报文格式并根据所述报文转换规则对所述第一报文内容进行信息处理,得到所述第二报文的第二报文内容;
确定所述第二报文对应的脚本语言的解析算法,根据所述解析算法对所述第二报文内容进行解析,得到所述脚本语言的语言对象;
其中,所述解析算法用于指示按照报文内容中数据对象的属性信息将报文内容中数据对象映射成抽象类,所述根据所述解析算法对所述第二报文内容进行解析,得到所述脚本语言的语言对象,包括:
获取所述第二报文内容中待转换数据对象并获取所述待转换数据对象的属性信息;
根据所述属性信息获取所述待转换数据对象的数据类型;
根据所述数据类型构造所述待转换数据对象的数据对象,并根据所述待转换数据对象的数据名称和数据值初始化所述待转换数据对象的数据对象以将所述待转换数据对象的数据对象映射成抽象类,得到所述脚本语言的语言对象。
2.根据权利要求1所述的方法,其特征在于,所述确定报文转换规则,包括:
根据所述第一报文格式确定所述第一报文中各数据层级之间的缩进格式;
获取所述第二报文的第二报文格式;
根据所述缩进格式以及所述第二报文格式确定所述第一报文内容的数据封装形式;
根据所述数据封装形式确定所述报文转换规则。
3.根据权利要求2所述的方法,其特征在于,所述根据所述缩进格式以及所述第二报文格式确定所述第一报文内容的数据封装形式,包括:
根据所述缩进格式确定所述第一报文内容中相同缩进量的第一数据;
根据所述第二报文格式确定所述数据封装形式中包含数据名称、数据类型以及数据值的格式;
确定所述数据封装形式包括将所述第一数据按照所述数据名称、所述数据类型以及所述数据值的格式进行数据封装。
4.根据权利要求2所述的方法,其特征在于,所述根据所述缩进格式以及所述第二报文格式确定所述第一报文内容的数据封装形式,包括:
根据所述缩进格式获取所述第一报文内容中无缩进且非结束标识的第二数据;
根据所述第二报文格式确定所述数据封装形式中包含数据名称、数据类型以及数据值的格式;
确定所述第一报文的数据封装形式包括将所述无缩进且非结束标识的第二数据按照所述数据名称、所述数据类型、所述数据值以及参数类型的格式进行数据封装。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述第一数据的数据类型为数据表类型,确定所述数据封装形式还包括将所述第一数据的数据值根据表行进行数据封装;
若所述第一数据的数据类型为结构体类型,确定所述数据封装形式还包括将所述第一数据的数据值进行同行封装。
6.根据权利要求2所述的方法,其特征在于,所述根据所述数据封装形式确定所述报文转换规则,包括:
根据所述缩进格式获取所述第一报文的数据缩进量;
根据所述数据缩进量确定所述第一报文内容的数据存储方式;
根据所述数据存储方式以及所述数据封装形式确定所述报文转换规则。
7.根据权利要求2所述的方法,其特征在于,所述基于所述第一报文格式并根据所述报文转换规则对所述第一报文内容进行信息处理,得到所述第二报文的第二报文内容,包括:
基于所述第一报文格式确定的所述第一报文的所述缩进格式并根据所述报文转换规则对所述第一报文进行信息处理,得到待转换内容;
将所述待转换内容的第一字符转换为所述第二报文的第二字符,得到所述第二报文内容。
8.根据权利要求6所述的方法,其特征在于,所述根据所述数据缩进量确定所述第一报文内容的数据存储方式,包括:
根据所述数据缩进量确定缩进量相同的第二数据;
确定所述数据存储方式包括将所述缩进量相同的第二数据存储到相同的列表中。
9.根据权利要求8所述的方法,其特征在于,所述确定所述数据存储方式包括将所述缩进量相同的第二数据存储到相同的列表中,包括:
获取所述第一报文内容中各所述缩进量相同的第二数据的缩进量;
根据所述各所述缩进量相同的第二数据的缩进量确定所述各所述缩进量相同的第二数据对应的键值;
确定所述数据存储方式包括以所述各所述缩进量相同的第二数据对应的键值为容器的键、以所述各所述缩进量相同的第二数据对应的列表为所述容器的值的方式将所述第一报文内容存储到所述容器,所述容器为键与值关联的且用于存储所述第一报文内容的存储单元。
10.根据权利要求1所述的方法,其特征在于,所述待转换数据对象的数据类型包括字段类型、数据表类型或结构体类型;
所述根据所述数据类型构造所述待转换数据对象的数据对象,并根据所述待转换数据对象的数据名称和数据值初始化所述待转换数据对象的数据对象以将所述待转换数据对象的数据对象映射成抽象类,得到所述脚本语言的语言对象,包括:
若所述数据类型为所述字段类型,根据所述字段类型构造所述待转换数据对象 的第一数据对象,并根据所述待转换数据对象的数据名称和数据值初始化所述第一数据对象,得到所述脚本语言的语言对象;
若所述数据类型为所述数据表类型,根据所述数据表类型构造所述待转换数据对象的第二数据对象,并根据所述待转换数据对象的数据名称和数据值初始化所述第二数据对象,得到所述脚本语言的语言对象;
若所述数据类型为所述结构体类型,根据所述结构体类型构造所述待转换数据对象的第三数据对象,并根据所述待转换数据对象的数据名称和数据值初始化所述第三数据对象,得到所述脚本语言的语言对象。
11.一种报文转换的装置,其特征在于,所述装置包括:
第一获取模块,用于获取第一报文的第一报文格式和第一报文内容;
确定模块,用于确定报文转换规则,所述报文转换规则用于指示按照预设转换规则将所述第一报文转换成第二报文;
处理模块,用于基于所述第一报文格式并根据所述报文转换规则对所述第一报文内容进行信息处理,得到所述第二报文的第二报文内容;
解析模块,用于确定所述第二报文对应的脚本语言的解析算法,根据所述解析算法对所述第二报文内容进行解析,得到所述脚本语言的语言对象;
其中,所述解析算法用于指示按照报文内容中数据对象的属性信息将报文内容中数据对象映射成抽象类,所述根据所述解析算法对所述第二报文内容进行解析,得到所述脚本语言的语言对象,包括:
获取所述第二报文内容中待转换数据对象并获取所述待转换数据对象的属性信息;
根据所述属性信息获取所述待转换数据对象的数据类型;
根据所述数据类型构造所述待转换数据对象的数据对象,并根据所述待转换数据对象的数据名称和数据值初始化所述待转换数据对象的数据对象以将所述待转换数据对象的数据对象映射成抽象类,得到所述脚本语言的语言对象。
12.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至10中任一项所述方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至10中任一项所述的方法的步骤。
CN202010859745.9A 2020-08-24 2020-08-24 报文转换的方法、装置、计算机设备和存储介质 Active CN112187713B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010859745.9A CN112187713B (zh) 2020-08-24 2020-08-24 报文转换的方法、装置、计算机设备和存储介质
CA3128803A CA3128803A1 (en) 2020-08-24 2021-08-24 Message conversion method and device, computer equipment and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010859745.9A CN112187713B (zh) 2020-08-24 2020-08-24 报文转换的方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN112187713A CN112187713A (zh) 2021-01-05
CN112187713B true CN112187713B (zh) 2023-04-25

Family

ID=73925484

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010859745.9A Active CN112187713B (zh) 2020-08-24 2020-08-24 报文转换的方法、装置、计算机设备和存储介质

Country Status (2)

Country Link
CN (1) CN112187713B (zh)
CA (1) CA3128803A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114338835A (zh) * 2021-12-31 2022-04-12 中企云链(北京)金融信息服务有限公司 数据报文动态转换方法以及装置、存储介质、电子装置
CN115118792A (zh) * 2022-06-27 2022-09-27 中国银行股份有限公司 报文接口格式转换方法、装置和系统
CN116028434B (zh) * 2023-03-23 2023-07-07 中科星图测控技术股份有限公司 一种描述空间分析场景的文件编码方法和系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105357301A (zh) * 2015-11-11 2016-02-24 中国建设银行股份有限公司 一种报文格式转换方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110166463B (zh) * 2019-05-27 2021-08-27 中国银联股份有限公司 一种报文传输转换方法及装置
CN111191422B (zh) * 2019-12-31 2023-09-05 湖南中联重科智能技术有限公司 一种文件格式转换方法、装置和计算机可读存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105357301A (zh) * 2015-11-11 2016-02-24 中国建设银行股份有限公司 一种报文格式转换方法及装置

Also Published As

Publication number Publication date
CN112187713A (zh) 2021-01-05
CA3128803A1 (en) 2022-02-24

Similar Documents

Publication Publication Date Title
CN112187713B (zh) 报文转换的方法、装置、计算机设备和存储介质
CN109684607B (zh) Json数据解析方法、装置、计算机设备和存储介质
US8028276B1 (en) Method and system for generating a test file
CN109800258B (zh) 数据文件部署方法、装置、计算机设备及存储介质
US9043757B2 (en) Identifying differences between source codes of different versions of a software when each source code is organized using incorporated files
CN110825385B (zh) React Native离线包的构建方法及存储介质
CN109597618B (zh) 程序开发方法、装置、计算机设备及存储介质
CN111831384A (zh) 语言切换方法和装置、设备及存储介质
US10496423B2 (en) Method for opening up data and functions of terminal application based on reconstruction technology
CN110162510A (zh) 文本对比方法、装置、计算机设备及存储介质
JP2017174418A (ja) モデルチェックのためのデータ構造抽象化
CN112328219A (zh) 业务访问处理方法、装置、系统和计算机设备
US11422917B2 (en) Deriving software application dependency trees for white-box testing
CN115599359A (zh) 一种代码生成方法、装置、设备及介质
CN113791768B (zh) 代码生成方法及装置、存储介质、终端
CN105867886B (zh) 一种写表格的方法及装置
CN111881043A (zh) 页面测试方法、装置、存储介质和处理器
CN116414689A (zh) 一种基于反射机制的接口参数校验方法及系统
CN114115900B (zh) 一种脚本编译方法、装置及电子设备
CN114168456A (zh) 一种基于3d-gis的前端性能自动化测试方法
CN112417020B (zh) 业务扩展的实现方法、装置、计算机设备和存储介质
CN114579466A (zh) 构建测试用例和代码测试的方法、装置、设备及介质
TWI707273B (zh) 使用統一聚合查詢語言獲取資源的方法及系統
CN116755684B (zh) OAS Schema的生成方法、装置、设备及介质
CN116501744B (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