CN117411939A - 序列化数据解析方法、装置、设备及存储介质 - Google Patents
序列化数据解析方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117411939A CN117411939A CN202311387871.9A CN202311387871A CN117411939A CN 117411939 A CN117411939 A CN 117411939A CN 202311387871 A CN202311387871 A CN 202311387871A CN 117411939 A CN117411939 A CN 117411939A
- Authority
- CN
- China
- Prior art keywords
- serialization
- data
- target
- function
- serialized
- 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
- 238000000034 method Methods 0.000 title claims abstract description 83
- 238000007405 data analysis Methods 0.000 title abstract description 7
- 230000006870 function Effects 0.000 claims abstract description 212
- 238000012545 processing Methods 0.000 claims abstract description 37
- 238000004458 analytical method Methods 0.000 claims abstract description 23
- 238000004590 computer program Methods 0.000 claims description 14
- 238000004891 communication Methods 0.000 abstract description 17
- 230000008569 process Effects 0.000 abstract description 11
- 238000013507 mapping Methods 0.000 description 18
- 238000011144 upstream manufacturing Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/149—Adaptation of the text data for streaming purposes, e.g. Efficient XML Interchange [EXI] format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
- G06F40/154—Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种序列化数据解析方法、装置、设备及存储介质,涉及通信技术领域,具体涉及数据处理、数据解析技术领域,可应用于微服务化、多模块通讯等场景下。具体实现方案包括:接收来自目标模块的序列化数据;根据序列化数据,确定序列化数据对应的第一目标反序列化函数,其中,不同序列化格式的序列化数据对应的反序列化函数不同;根据第一目标反序列化函数,对序列化数据进行反序列化解析。本公开能够使接收序列化数据的处理单元有效地处理不同序列化格式的序列化数据,提高了接收序列化数据的处理单元的兼容性。
Description
技术领域
本公开涉及通信技术领域,具体涉及数据处理、数据解析技术领域,可应用于微服务化、多模块通讯等场景下,尤其涉及一种序列化数据解析方法、装置、设备及存储介质。
背景技术
微服务化是目前服务架构方向快速发展和广泛应用的一种模式,微服务化是将原来庞大的单体系统,拆分为一个个功能独立的服务模块,多个服务模块之间会使用约定的通讯协议相互通讯,以实现数据交换,序列化和反序列化属于通讯协议的一部分。
目前,下游的服务模块会接收来自上游的服务模块的序列化数据,并进行反序列化解析,得到相应的对象数据并处理。
但是,当存在多个使用不同序列化格式的上游服务模块时,下游服务模块无法有效处理不同序列化格式的序列化数据。
发明内容
本公开提供了一种序列化数据解析方法、装置、设备及存储介质,能够使接收序列化数据的处理单元有效地处理不同序列化格式的序列化数据,提高了接收序列化数据的处理单元的兼容性。
根据本公开的第一方面,提供了一种序列化数据解析方法,包括:
接收来自目标模块的序列化数据;根据序列化数据,确定序列化数据对应的第一目标反序列化函数,其中,不同序列化格式的序列化数据对应的反序列化函数不同;根据第一目标反序列化函数,对序列化数据进行反序列化解析。
根据本公开的第二方面,提供了一种序列化数据解析装置,该装置包括:接收模块、处理模块和解析模块。
接收模块,用于接收来自目标模块的序列化数据。
处理模块,用于根据序列化数据,确定序列化数据对应的第一目标反序列化函数,其中,不同序列化格式的序列化数据对应的反序列化函数不同。
解析模块,用于根据第一目标反序列化函数,对序列化数据进行反序列化解析。
根据本公开的第三方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如第一方面的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行根据第一方面的方法。
根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现根据第一方面的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1为本公开实施例提供的序列化数据解析方法的流程示意图;
图2为本公开实施例提供的序列化数据解析方法的另一种流程示意图;
图3为本公开实施例提供的序列化数据解析方法的又一种流程示意图;
图4为本公开实施例提供的序列化数据解析方法的又一种流程示意图;
图5为本公开实施例提供的序列化数据解析方法的又一种流程示意图;
图6为本公开实施例提供的序列化数据解析方法的又一种流程示意图;
图7为本公开实施例提供的序列化数据解析方法的又一种流程示意图;
图8为本公开实施例提供的序列化数据解析装置的组成示意图;
图9为本公开实施例提供的电子设备的组成示意图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
应当理解,在本公开各实施例中,字符“/”一般表示前后关联对象是一种“或”的关系。术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
微服务化是目前服务架构方向快速发展和广泛应用的一种模式,微服务化是将原来庞大的单体系统,拆分为一个个功能独立的服务模块,多个服务模块之间会使用约定的通讯协议相互通讯,以实现数据交换,序列化和反序列化属于通讯协议的一部分。
在OSI七层协议模型中展现层(Presentation Layer)的一个主要功能是把应用层的对象数据转换成一段连续的二进制字符串,或者反过来,把二进制字符串转换成应用层的对象数据,这两个功能就是序列化和反序列化。二进制序列化保持类型保真度,这对于在应用程序的不同调用之间保留对象的状态很有用。通过将对象序列化,可以将对象序列化到流、磁盘、内存和网络等等。
目前,下游的服务模块会接收来自上游的服务模块的序列化数据,并进行反序列化解析,得到相应的对象数据并处理。
上下游的服务模块按照约定的序列化格式,上游服务模块向下游服务模块传输序列化数据,下游服务模块对序列化数据进行反序列化,解析成需要的对象数据并处理。
但是,当存在多个使用不同序列化格式的上游服务模块时,下游服务模块无法有效处理不同序列化格式的序列化数据。
例如,有使用XML序列化格式的上游服务模块A和使用JSON序列化格式的上游服务模块B,以及使用JSON序列化格式的下游服务模块a时,下游服务模块a无法有效处理来自上游服务模块B的序列化数据。
在此背景技术下,本公开提供了一种序列化数据解析方法、装置、设备及存储介质,能够使接收序列化数据的处理单元有效地处理不同序列化格式的序列化数据,提高了接收序列化数据的处理单元的兼容性。。
本公开实施例提供的序列化数据解析方法的执行主体可以是计算机或服务器,或者还可以是其他具有数据处理能力的电子设备;或者,该方法的执行主体也可以是上述电子设备中的处理器(例如中央处理器(central processing unit,CPU));再或者,该方法的执行主体还可以是上述电子设备中安装的能够实现该方法的功能的应用程序(application,APP);又或者,该方法的执行主体又可以是上述电子设备中具有该方法的功能的功能模块或单元等。在此对该方法的执行主体不作限制。
示例性地,本公开实施例提供的序列化数据解析方法的执行主体可以为下游服务模块对应的电子设备。
下面结合附图对该序列化数据解析方法进行示例性说明。
图1为本公开实施例提供的序列化数据解析方法的流程示意图。如图1所示,该方法可以包括:
S101、接收来自目标模块的序列化数据。
示例性地,目标模块可以为上游服务模块。
示例性地,目标模块与执行本公开实施例的电子设备(以下简称电子设备)之间通过包括序列化和反序列化的通讯协议相互通讯。
示例地,电子设备在接收到来自目标模块的序列化数据后,可以继续执行步骤S102。
S102、根据序列化数据,确定序列化数据对应的第一目标反序列化函数。
其中,不同序列化格式的序列化数据对应的反序列化函数不同。
示例性地,序列化格式可以为XML、JSON、MCPack、MessagePack、Protobuf、Hessian、Kryo,以及其他仅各自语言特性支持的序列化格式如php serialize,JDK原生序列化格式等,对此不作限制。
示例性地,可以根据序列化数据的二进制格式特征,或者根据第二对应关系和序列化数据对应的目标模块,确定出序列化数据对应的第一目标反序列化函数。如此,即可以在接收到不同序列化格式的序列化数据时,确定不同序列化格式的序列化数据分别对应的第一目标反序列化函数。
示例地,电子设备在确定出序列化数据对应的第一目标反序列化函数后,可以继续执行步骤S103。
S103、根据第一目标反序列化函数,对序列化数据进行反序列化解析。
示例性地,可以预先配置出能够调用不同序列化格式的序列化数据对应的反序列化函数的反序列化解析器,并将反序列化解析器封装成反序列化算子,在确定第一目标反序列化函数之后,根据第一目标反序列化函数,使用第一目标反序列化函数对应的反序列化算子,使反序列化算子调用第一目标反序列化函数对序列化数据进行解析。
本公开实施例通过接收来自目标模块的序列化数据,根据序列化数据,确定序列化数据对应的第一目标反序列化函数,根据第一目标反序列化函数,对序列化数据进行反序列化解析,可以使接收序列化数据的处理单元(如下游服务模块)能有效地处理不同序列化格式的序列化数据,提高了接收序列化数据的处理单元的兼容性。
图2为本公开实施例提供的序列化数据解析方法的另一种流程示意图。如图2所示,根据序列化数据,确定序列化数据对应的第一目标反序列化函数,可以包括:
S201、根据序列化数据的二进制格式特征,确定序列化数据对应的序列化格式。
示例性地,可以根据预设的映射表,对序列化数据的二进制格式特征进行比对,从而准确地确定出序列化数据对应的序列化格式,预设的映射表中包括序列化格式与二进制字符串的映射关系,预设的映射表中不同的序列化格式对应的二进制字符串不同。
例如,以序列化数据对应的序列化格式为json格式,“"{\"uid\":123,\"uname\":123}"”相应的二进制字符串为序列化数据为例,“"{\"uid\":,\"uname\":}"”相应的二进制字符串即为序列化数据的二进制格式特征,可以将“"{\"uid\":,\"uname\":}"”相应的二进制字符串与预设的映射表中的二进制字符串进行比对,当预设的映射表中存在“"{\"uid\":,\"uname\":}"”的二进制字符串时,可以根据二进制字符串与序列化格式的映射关系,确定出序列化数据对应的序列化格式为json格式。
示例性地,可以将序列化数据输入训练好的神经网络模型,神经网络模型输出序列化数据对应的序列化格式。
S202、根据序列化数据对应的序列化格式、第一对应关系,确定序列化数据对应的第一目标反序列化函数。
其中,第一对应关系用于指示序列化格式对应的反序列化函数。
示例性地,可以根据序列化数据对应的序列化格式,将第一对应关系中序列化数据对应的序列化格式所对应的反序列化函数,确定为序列化数据对应的第一目标反序列化函数。
例如,以序列化数据对应的序列化格式为json格式为例,第一对应关系中json格式对应的反序列化函数为函数A,则将函数A确定为序列化数据对应的第一目标反序列化函数。
本实施例通过根据序列化数据的二进制格式特征,可以准确地确定序列化数据对应的序列化格式,根据序列化数据对应的序列化格式、第一对应关系,可以准确地确定出序列化数据对应的第一目标反序列化函数。
图3为本公开实施例提供的序列化数据解析方法的又一种流程示意图。如图3所示,根据序列化数据,确定序列化数据对应的第一目标反序列化函数,可以包括:
S301、根据第二对应关系和序列化数据对应的目标模块,确定目标模块关联的反序列化函数。
其中,第二对应关系用于指示目标模块关联的反序列化函数。
示例性地,第二对应关系可以为预先设定好的。
示例性地,可以根据序列化数据对应的目标模块,将第二对应关系中目标模块对应的反序列化函数,确定为目标模块关联的反序列化函数。
例如,以序列化数据对应的目标模块为模块A为例,第二对应关系中模块A对应的反序列化函数为函数B,则将函数B确定为模块A关联的反序列化函数。
S302、将目标模块关联的反序列化函数确定为序列化数据对应的第一目标反序列化函数。
示例性地,以序列化数据对应的目标模块为模块A,模块A关联的反序列化函数为函数B为例,可以将函数B确定为序列化数据对应的第一目标反序列化函数。
本实施例通过根据第二对应关系和序列化数据对应的目标模块,确定目标模块关联的反序列化函数,将目标模块关联的反序列化函数确定为序列化数据对应的第一目标反序列化函数,可以快速地确定出序列化数据对应的第一目标反序列化函数,提高对序列化数据的解析速度。
图4为本公开实施例提供的序列化数据解析方法的又一种流程示意图。如图4所示,根据序列化数据,确定序列化数据对应的第一目标反序列化函数,可以包括:
S401、根据第二对应关系和序列化数据对应的目标模块,确定目标模块是否存在关联的反序列化函数。
其中,第二对应关系用于指示目标模块关联的反序列化函数。
示例性地,第二对应关系可以为预先设定好的。
示例性地,可以根据序列化数据对应的目标模块,将第二对应关系中目标模块对应的反序列化函数,确定为目标模块关联的反序列化函数。
例如,以序列化数据对应的目标模块为模块A为例,第二对应关系中模块A对应的反序列化函数为函数B,则将函数B确定为模块A关联的反序列化函数。
S402、当目标模块不存在关联的反序列化函数时,根据序列化数据的二进制格式特征,确定序列化数据对应的序列化格式。
示例性地,当目标模块不存在关联的反序列化函数时可以根据预设的映射表,对序列化数据的二进制格式特征进行比对,从而准确地确定出序列化数据对应的序列化格式,预设的映射表中包括序列化格式与二进制字符串的映射关系,预设的映射表中不同的序列化格式对应的二进制字符串不同。
例如,以序列化数据对应的序列化格式为json格式,“"{\"uid\":123,\"uname\":123}"”相应的二进制字符串为序列化数据为例,“"{\"uid\":,\"uname\":}"”相应的二进制字符串即为序列化数据的二进制格式特征,可以将“"{\"uid\":,\"uname\":}"”相应的二进制字符串与预设的映射表中的二进制字符串进行比对,当预设的映射表中存在“"{\"uid\":,\"uname\":}"”的二进制字符串时,可以根据二进制字符串与序列化格式的映射关系,确定出序列化数据对应的序列化格式为json格式。
示例地,当目标模块存在关联的反序列化函数时,可以将目标模块关联的反序列化函数确定为序列化数据对应的第一目标反序列化函数。
S403、根据序列化数据对应的序列化格式、第一对应关系,确定序列化数据对应的第一目标反序列化函数。
其中,第一对应关系用于指示序列化格式对应的反序列化函数。
示例性地,可以根据序列化数据对应的序列化格式,将第一对应关系中序列化数据对应的序列化格式所对应的反序列化函数,确定为序列化数据对应的第一目标反序列化函数。
例如,以序列化数据对应的序列化格式为json格式为例,第一对应关系中json格式对应的反序列化函数为函数A,则将函数A确定为序列化数据对应的第一目标反序列化函数。
本实施例通过根据第二对应关系和序列化数据对应的目标模块,确定目标模块是否存在关联的反序列化函数,当目标模块不存在关联的反序列化函数时,根据序列化数据的二进制格式特征,确定序列化数据对应的序列化格式,根据序列化数据对应的序列化格式、第一对应关系,确定序列化数据对应的第一目标反序列化函数,可以准确地确定出序列化数据对应的第一目标反序列化函数。
一些可能的实施方式中,该方法还可以包括:
更新第二对应关系。
示例性地,可以人为地对第二对应关系进行配置。
本实施例通过更新第二对应关系,可以使第二对应关系更为准确,从而提高后续接收到序列化数据时解析序列化数据的速度。
一些可能的实施方式中,更新第二对应关系,可以包括:
确定序列化数据能被完全解析,根据序列化数据对应的第一目标反序列化函数,更新第二对应关系。
其中,序列化数据能被完全解析是指序列化数据中的所有数据均能够被第一目标反序列化函数解析。
示例性地,序列化数据中的所有数据即为所有二进制字符,当序列化数据的所有二进制字符均能被第一目标反序列化函数解析时,确定序列化数据能被完全解析。
例如,以“"{\"uid\":123,\"uname\":123}"”相应的二进制字符串为序列化数据为例,当可以根据第一目标反序列化函数将“"{\"uid\":123,\"uname\":123}"”相应的二进制字符串解析为“"{\"uid\":123,\"uname\":123}"”且没有乱码,可以确定序列化数据能被完全解析。
示例性地,以序列化数据为“"{\"uid\":123,\"uname\":{\"nick_name\":\"aa\",\"name\":\"bb\"}}"”相应的二进制字符串为例,当根据第一目标反序列化函数解析出“"{\"uid\":123,\"uname\":***}"”,其中***表示无意义的乱码时,则确定序列化数据不能被完全解析。
示例地,以目标模块为模块A,序列化数据能被第一目标反序列化函数函数a完全解析,则将第二对应关系中模块A关联的反序列化函数更新为函数a。
本公开实施例通过确定序列化数据能被完全解析,根据序列化数据对应的第一目标反序列化函数,准确地更新第二对应关系,可以使第二对应关系更为准确,从而提高后续接收到序列化数据时解析序列化数据的速度。
一些可能的实施方式中,序列化数据包括第一数据和第二数据,第一数据为能被第一目标反序列化函数解析的序列化数据,第二数据为不能被第一目标反序列化函数解析的序列化数据。图5为本公开实施例提供的序列化数据解析方法的又一种流程示意图。如图5所示,该方法还可以包括:
S501、根据第二数据的二进制格式特征,确定第二数据对应的第二目标反序列化函数。
示例性地,以序列化数据为“"{\"uid\":123,\"uname\":{\"nick_name\":\"aa\",\"name\":\"bb\"}}"”相应的二进制字符串为例,当根据第一目标反序列化函数解析出“"{\"uid\":123,\"uname\":***}"”,其中***表示无意义的乱码时,则序列化数据中“"{\"uid\":123,\"uname\":}"”相应的二进制字符即为第一数据,序列化数据中“{\"nick_name\":\"aa\",\"name\":\"bb\"}”相应的二进制字符即为第二数据。
示例地,可以根据预设的映射表,对第二数据的二进制格式特征进行比对,从而准确地确定出第二数据对应的序列化格式,预设的映射表中包括序列化格式与二进制字符串的映射关系,预设的映射表中不同的序列化格式对应的二进制字符串不同。再根据第二数据对应的序列化格式、第一对应关系,确定第二数据对应的第二目标反序列化函数。其中,第一对应关系用于指示序列化格式对应的反序列化函数。
示例性地,第一数据对应的第一目标反序列化函数和第二数据对应的第二目标反序列化函数可以相同也可以不同,对此不作限制。
S502、根据第二目标反序列化函数,对第二数据进行反序列化解析。
示例地,S502的具体实现方式类似于S103,在此不在赘述。
示例性地,对第二数据进行反序列化解析完成后,将第一数据对应的解析结果与第二数据对应的解析结果以相应的顺序进行组合,即可得到序列化数据的解析结果。
本实施例通过根据第二数据的二进制格式特征,确定第二数据对应的第二目标反序列化函数,根据第二目标反序列化函数,对第二数据进行反序列化解析,可以使接收序列化数据的处理单元对包含多种序列化格式的序列化数据进行解析,进一步提高接收序列化数据的处理单元的兼容性。
可以理解,本实施例可以在图1至图4中任一实施例之后实施,可以在第一目标序列化函数不能完全解析序列化数据之后,对序列化数据中的第二数据再次进行解析,从而得到序列化数据的解析结果。
可以理解,在S502后,还可以根据第一数据对应的第一目标反序列化函数和第二数据对应的第二目标反序列化函数,更新第二对应关系。
需要说明的是,上述为以第二数据可以被第二目标反序列化函数解析为例进行的说明。当然,在实际应用中,第二数据还可以不被第二目标反序列化函数完全解析,因此,当第二数据不被第二目标反序列化函数完全解析时,可以对第二数据中不能被第二目标反序列化函数解析的序列化数据再次执行与S501、S502类似的步骤,实现对第二数据中不能被第二目标反序列化函数解析的序列化数据的解析。
例如,可以根据第二数据中不能被第二目标反序列化函数解析的序列化数据的二进制格式特征,确定第二数据中不能被第二目标反序列化函数解析的序列化数据对应的反序列化函数,并根据对应的反序列化函数进行解析。
一些可能的实施方式中,序列化数据包括附加信息,附加信息用于指示序列化数据对应的序列化格式。图6为本公开实施例提供的序列化数据解析方法的又一种流程示意图。如图6所示,根据序列化数据,确定序列化数据对应的第一目标反序列化函数,可以包括:
S601、根据序列化数据的附加信息,确定序列化数据对应的序列化格式。
示例性地,附加信息可以为电子设备无需解析、能直接读取的显式信息,从而可以快速地根据附加信息确定出序列化数据对应的序列化格式。
示例性地,附加信息可以为目标模块在生成序列化数据时附加的。
S602、根据序列化数据对应的序列化格式,第一对应关系,确定序列化数据对应的第一目标反序列化函数。
其中,第一对应关系用于指示序列化格式对应的反序列化函数。
示例地,S602的具体实现方式类似于S202,在此不再赘述。
本实施例通过根据序列化数据的附加信息,确定序列化数据对应的序列化格式,根据序列化数据对应的序列化格式,第一对应关系,确定序列化数据对应的第一目标反序列化函数,可以快速地确定出序列化数据对应的第一目标反序列化函数。
可以理解,本实施例还可以结合前述实施例共同实施。例如,可以在接收到序列化数据后,先确定是否序列化数据是否包含附加信息,若包含,则执行S601、S602,若不包含,则可以再执行图2、图3、图4中的任一实施例,实现对序列化数据的解析。
以上实施例介绍了本公开实施例提供的序列化数据解析方法,下面结合图7,通过一个具体的示例,对该序列化数据解析方法进行更详细的说明。图7为本公开实施例提供的序列化数据解析方法的又一种流程示意图。如图7所示,该固件推送方法可以包括以下S701至S710:
S701,接收来自目标模块的序列化数据。
S702,根据第二对应关系和序列化数据对应的目标模块,确定目标模块是否存在关联的反序列化函数。当目标模块不存在关联的反序列化函数时,执行S703,否则将目标模块关联的反序列化函数确定为第一目标反序列化函数,执行S706。
S703,确定序列化数据是否包含附加信息,附加信息用于指示序列化数据对应的序列化格式。若不包含,执行S704,否则执行S705。
S704,根据序列化数据的二进制格式特征,确定序列化数据对应的序列化格式。
S705,根据序列化数据对应的序列化格式、第一对应关系,确定序列化数据对应的第一目标反序列化函数。
S706,根据第一目标反序列化函数,对序列化数据进行反序列化解析。
S707,确定第一目标反序列化函数是否能完全解析序列化数据,当不能完全解析,执行S708,否则执行S710。
S708,根据第二数据的二进制格式特征,确定第二数据对应的第二目标反序列化函数,其中,第二数据为不能被第一目标反序列化函数解析的序列化数据。
S709,根据第二目标反序列化函数,对第二数据进行反序列化解析。
S710,根据序列化数据对应的第一目标反序列化函数和/或第二目标反序列化函数,更新第二对应关系。
上述主要从方法的角度对本公开实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术目标应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本公开能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术目标可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
在示例性实施例中,本公开实施例还提供一种序列化数据解析装置,可以用于实现如前述实施例的序列化数据解析方法。
图8为本公开实施例提供的序列化数据解析装置的组成示意图。如图8所示,该装置可以包括:接收模块801、处理模块802和解析模块803。
接收模块801,用于接收来自目标模块的序列化数据。
处理模块802,用于根据序列化数据,确定序列化数据对应的第一目标反序列化函数,其中,不同序列化格式的序列化数据对应的反序列化函数不同。
解析模块803,用于根据第一目标反序列化函数,对序列化数据进行反序列化解析。
一些可能的实施方式中,处理模块802,具体用于:
根据序列化数据的二进制格式特征,确定序列化数据对应的序列化格式;根据序列化数据对应的序列化格式、第一对应关系,确定序列化数据对应的第一目标反序列化函数,第一对应关系用于指示序列化格式对应的反序列化函数。
一些可能的实施方式中,处理模块802,具体用于:
根据第二对应关系和序列化数据对应的目标模块,确定目标模块关联的反序列化函数,第二对应关系用于指示目标模块关联的反序列化函数;将目标模块关联的反序列化函数确定为序列化数据对应的第一目标反序列化函数。
一些可能的实施方式中,处理模块802,具体用于:
根据第二对应关系和序列化数据对应的目标模块,确定目标模块是否存在关联的反序列化函数,第二对应关系用于指示目标模块关联的反序列化函数;当目标模块不存在关联的反序列化函数时,根据序列化数据的二进制格式特征,确定序列化数据对应的序列化格式;根据序列化数据对应的序列化格式、第一对应关系,确定序列化数据对应的第一目标反序列化函数,第一对应关系用于指示序列化格式对应的反序列化函数。
一些可能的实施方式中,该装置还包括:
更新模块804,用于更新第二对应关系。
一些可能的实施方式中,更新模块804,具体用于:
确定序列化数据能被完全解析,根据序列化数据对应的第一目标反序列化函数,更新第二对应关系;其中,序列化数据能被完全解析是指序列化数据中的所有数据均能够被第一目标反序列化函数解析。
一些可能的实施方式中,序列化数据包括第一数据和第二数据,第一数据为能被第一目标反序列化函数解析的序列化数据,第二数据为不能被第一目标反序列化函数解析的序列化数据。
处理模块802,还用于:
根据第二数据的二进制格式特征,确定第二数据对应的第二目标反序列化函数;根据第二目标反序列化函数,对第二数据进行反序列化解析。
一些可能的实施方式中,序列化数据包括附加信息,附加信息用于指示序列化数据对应的序列化格式。
处理模块802,具体用于:
根据序列化数据的附加信息,确定序列化数据对应的序列化格式;根据序列化数据对应的序列化格式,第一对应关系,确定序列化数据对应的第一目标反序列化函数,第一对应关系用于指示序列化格式对应的反序列化函数。
需要说明的是,图8中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,还可以将两个或两个以上的功能集成在一个处理模块中。本公开实施例对此不作限制。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
示例性实施例中,电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如以上实施例所述的方法。该电子设备可以是上述计算机或服务器。
示例性实施例中,可读存储介质可以是存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行根据以上实施例所述的方法。
示例性实施例中,计算机程序产品包括计算机程序,所述计算机程序在被处理器执行时实现根据以上实施例所述的方法。
图9示出了可以用来实施本公开的实施例的示例电子设备900的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图9所示,电子设备900包括计算单元901,其可以根据存储在只读存储器(ROM)902中的计算机程序或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序,来执行各种适当的动作和处理。在RAM 903中,还可存储电子设备900操作所需的各种程序和数据。计算单元901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
电子设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许电子设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如序列化数据解析方法。例如,在一些实施例中,序列化数据解析方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到电子设备900上。当计算机程序加载到RAM 903并由计算单元901执行时,可以执行上文描述的序列化数据解析方法的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行序列化数据解析方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)或者包括中间件部件的计算系统(例如,应用服务器)或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)或者包括这种后台部件、中间件部件或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (19)
1.一种序列化数据解析方法,所述方法包括:
接收来自目标模块的序列化数据;
根据所述序列化数据,确定所述序列化数据对应的第一目标反序列化函数,其中,不同序列化格式的序列化数据对应的反序列化函数不同;
根据所述第一目标反序列化函数,对所述序列化数据进行反序列化解析。
2.根据权利要求1所述的方法,所述根据所述序列化数据,确定所述序列化数据对应的第一目标反序列化函数,包括:
根据所述序列化数据的二进制格式特征,确定所述序列化数据对应的序列化格式;
根据所述序列化数据对应的序列化格式、第一对应关系,确定所述序列化数据对应的第一目标反序列化函数,所述第一对应关系用于指示序列化格式对应的反序列化函数。
3.根据权利要求1所述的方法,所述根据所述序列化数据,确定所述序列化数据对应的第一目标反序列化函数,包括:
根据第二对应关系和所述序列化数据对应的所述目标模块,确定所述目标模块关联的反序列化函数,所述第二对应关系用于指示目标模块关联的反序列化函数;
将所述目标模块关联的反序列化函数确定为所述序列化数据对应的第一目标反序列化函数。
4.根据权利要求1所述的方法,所述根据所述序列化数据,确定所述序列化数据对应的第一目标反序列化函数,包括:
根据第二对应关系和所述序列化数据对应的所述目标模块,确定所述目标模块是否存在关联的反序列化函数,所述第二对应关系用于指示目标模块关联的反序列化函数;
当所述目标模块不存在关联的反序列化函数时,根据所述序列化数据的二进制格式特征,确定所述序列化数据对应的序列化格式;
根据所述序列化数据对应的序列化格式、第一对应关系,确定所述序列化数据对应的第一目标反序列化函数,所述第一对应关系用于指示序列化格式对应的反序列化函数。
5.根据权利要求3或4所述的方法,所述方法还包括:
更新所述第二对应关系。
6.根据权利要求5所述的方法,所述更新所述第二对应关系,包括:
确定所述序列化数据能被完全解析,根据所述序列化数据对应的第一目标反序列化函数,更新所述第二对应关系;
其中,所述序列化数据能被完全解析是指所述序列化数据中的所有数据均能够被所述第一目标反序列化函数解析。
7.根据权利要求1所述的方法,所述序列化数据包括第一数据和第二数据,所述第一数据为能被所述第一目标反序列化函数解析的序列化数据,所述第二数据为不能被所述第一目标反序列化函数解析的序列化数据;
所述方法还包括:
根据所述第二数据的二进制格式特征,确定所述第二数据对应的第二目标反序列化函数;
根据所述第二目标反序列化函数,对所述第二数据进行反序列化解析。
8.根据权利要求1所述的方法,所述序列化数据包括附加信息,所述附加信息用于指示所述序列化数据对应的序列化格式;
所述根据所述序列化数据,确定所述序列化数据对应的第一目标反序列化函数,包括:
根据所述序列化数据的所述附加信息,确定所述序列化数据对应的序列化格式;
根据所述序列化数据对应的序列化格式,第一对应关系,确定所述序列化数据对应的第一目标反序列化函数,所述第一对应关系用于指示序列化格式对应的反序列化函数。
9.一种序列化数据解析装置,所述装置包括:
接收模块,用于接收来自目标模块的序列化数据;
处理模块,用于根据所述序列化数据,确定所述序列化数据对应的第一目标反序列化函数,其中,不同序列化格式的序列化数据对应的反序列化函数不同;
解析模块,用于根据所述第一目标反序列化函数,对所述序列化数据进行反序列化解析。
10.根据权利要求9所述的装置,所述处理模块,具体用于:
根据所述序列化数据的二进制格式特征,确定所述序列化数据对应的序列化格式;
根据所述序列化数据对应的序列化格式、第一对应关系,确定所述序列化数据对应的第一目标反序列化函数,所述第一对应关系用于指示序列化格式对应的反序列化函数。
11.根据权利要求9所述的装置,所述处理模块,具体用于:
根据第二对应关系和所述序列化数据对应的所述目标模块,确定所述目标模块关联的反序列化函数,所述第二对应关系用于指示目标模块关联的反序列化函数;
将所述目标模块关联的反序列化函数确定为所述序列化数据对应的第一目标反序列化函数。
12.根据权利要求9所述的装置,所述处理模块,具体用于:
根据第二对应关系和所述序列化数据对应的所述目标模块,确定所述目标模块是否存在关联的反序列化函数,所述第二对应关系用于指示目标模块关联的反序列化函数;
当所述目标模块不存在关联的反序列化函数时,根据所述序列化数据的二进制格式特征,确定所述序列化数据对应的序列化格式;
根据所述序列化数据对应的序列化格式、第一对应关系,确定所述序列化数据对应的第一目标反序列化函数,所述第一对应关系用于指示序列化格式对应的反序列化函数。
13.根据权利要求11或12所述的装置,所述装置还包括:
更新模块,用于更新所述第二对应关系。
14.根据权利要求13所述的装置,所述更新模块,具体用于:
确定所述序列化数据能被完全解析,根据所述序列化数据对应的第一目标反序列化函数,更新所述第二对应关系;
其中,所述序列化数据能被完全解析是指所述序列化数据中的所有数据均能够被所述第一目标反序列化函数解析。
15.根据权利要求9所述的装置,所述序列化数据包括第一数据和第二数据,所述第一数据为能被所述第一目标反序列化函数解析的序列化数据,所述第二数据为不能被所述第一目标反序列化函数解析的序列化数据;
所述处理模块,还用于:
根据所述第二数据的二进制格式特征,确定所述第二数据对应的第二目标反序列化函数;
根据所述第二目标反序列化函数,对所述第二数据进行反序列化解析。
16.根据权利要求9所述的装置,所述序列化数据包括附加信息,所述附加信息用于指示所述序列化数据对应的序列化格式;
所述处理模块,具体用于:
根据所述序列化数据的所述附加信息,确定所述序列化数据对应的序列化格式;
根据所述序列化数据对应的序列化格式,第一对应关系,确定所述序列化数据对应的第一目标反序列化函数,所述第一对应关系用于指示序列化格式对应的反序列化函数。
17.一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8任一项所述的方法。
18.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行根据权利要求1-8任一项所述的方法。
19.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311387871.9A CN117411939A (zh) | 2023-10-24 | 2023-10-24 | 序列化数据解析方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311387871.9A CN117411939A (zh) | 2023-10-24 | 2023-10-24 | 序列化数据解析方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117411939A true CN117411939A (zh) | 2024-01-16 |
Family
ID=89490344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311387871.9A Pending CN117411939A (zh) | 2023-10-24 | 2023-10-24 | 序列化数据解析方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117411939A (zh) |
-
2023
- 2023-10-24 CN CN202311387871.9A patent/CN117411939A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112597754B (zh) | 文本纠错方法、装置、电子设备和可读存储介质 | |
CN113342345A (zh) | 深度学习框架的算子融合方法、装置 | |
CN113760769B (zh) | 测试用例处理方法、装置、电子设备以及存储介质 | |
CN112527281B (zh) | 基于人工智能的算子升级方法、装置、电子设备及介质 | |
CN114816393B (zh) | 信息生成方法、装置、设备以及存储介质 | |
CN113392346A (zh) | 资源文件的路径处理方法、装置、电子设备及存储介质 | |
KR20210105315A (ko) | 데이터 주석 방법, 장치, 기기, 저장매체 및 컴퓨터 프로그램 | |
CN113627536A (zh) | 模型训练、视频分类方法,装置,设备以及存储介质 | |
CN113127357B (zh) | 单元测试方法、装置、设备、存储介质及程序产品 | |
CN113836462A (zh) | 页面描述文件的生成方法、装置、设备及存储介质 | |
CN113849581A (zh) | 告警信息的处理方法、装置、设备和存储介质 | |
CN116302218B (zh) | 函数信息的添加方法、装置、设备以及存储介质 | |
CN115809688B (zh) | 一种模型调试方法、装置、电子设备及存储介质 | |
US20230141932A1 (en) | Method and apparatus for question answering based on table, and electronic device | |
CN114743586B (zh) | 存储器模型的镜像存储实现方法、装置及存储介质 | |
CN115186738B (zh) | 模型训练方法、装置和存储介质 | |
CN115481594B (zh) | 计分板实现方法、计分板、电子设备及存储介质 | |
CN117411939A (zh) | 序列化数据解析方法、装置、设备及存储介质 | |
CN114385829A (zh) | 知识图谱创建方法、装置、设备以及存储介质 | |
CN114445682A (zh) | 训练模型的方法、装置、电子设备、存储介质及产品 | |
CN114138358A (zh) | 应用程序的启动优化方法、装置、设备和存储介质 | |
CN114374703A (zh) | 云手机信息的获取方法、装置、设备以及存储介质 | |
CN112541346A (zh) | 摘要生成方法、装置、电子设备及可读存储介质 | |
CN112989797B (zh) | 模型训练、文本扩展方法,装置,设备以及存储介质 | |
CN114816467B (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 |