CN114020272A - 一种序列化编码、解码方法、装置及电子设备 - Google Patents

一种序列化编码、解码方法、装置及电子设备 Download PDF

Info

Publication number
CN114020272A
CN114020272A CN202111117236.XA CN202111117236A CN114020272A CN 114020272 A CN114020272 A CN 114020272A CN 202111117236 A CN202111117236 A CN 202111117236A CN 114020272 A CN114020272 A CN 114020272A
Authority
CN
China
Prior art keywords
data
type
serialized
coded
decoding
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
Application number
CN202111117236.XA
Other languages
English (en)
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.)
Weimeng Chuangke Network Technology China Co Ltd
Original Assignee
Weimeng Chuangke Network Technology China 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 Weimeng Chuangke Network Technology China Co Ltd filed Critical Weimeng Chuangke Network Technology China Co Ltd
Priority to CN202111117236.XA priority Critical patent/CN114020272A/zh
Publication of CN114020272A publication Critical patent/CN114020272A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明实施例提供了一种序列化编码、解码方法、装置及电子设备,该方法包括:获取待编码数据,并确定所述待编码数据的数据类型;根据预设的序列化协议中与所述数据类型对应的Breeze编码协议,对所述待编码数据进行编码,得到序列化数据;其中,所述序列化数据包括:与所述数据类型对应的类型编号;将得到的序列化数据发送给目标***。通过本发明实施例,实现了对已存在的对象数据进行跨语言编解码,通过在序列化数据中增加了数据类型等信息,从而使得解码侧可以根据数据类型对应的编解码协议对序列化数据进行准确解码,即使不使用本协议自动生成的类对象,在无schema描述的情况下依然可以进行自解码,转换成为通用对象,提高了使用的灵活性。

Description

一种序列化编码、解码方法、装置及电子设备
技术领域
本发明涉及计算机语言技术领域,尤其涉及一种序列化编码、解码方法、装置及电子设备。
背景技术
在多计算机语言***中,不同计算机***或服务之间进行的数据传递叫做数据交互,数据交互过程中需要对传输的数据进行序列化,所述序列化是指把要进行交互的数据转化成由0、1组成的二进制数据格式的过程,因为只有转化成二进制数据才方便通过物理或者光信号进行传输。一般序列化分为编码和解码两部分。所述序列化分散的数据结构转换为连续的字节流的过程。目前,常用的序列化工具有ProtoBuf、XML、json等,其中,ProtoBuf是由***设计的一种跨语言序列化协议,能够通过书写扩展名为.proto的描述文件(schema),自动生成不同计算机语言的类对象,并能把这些类对象进行二进制编码与解码,在不同语言计算机***直接进行数据交互。
上述序列化工具存在如下缺点。以ProtoBuf序列化为例,1.兼容性差,ProtoBuf序列化只能使用ProtoBuf自动生成的类对象进行编解码,因此只适合应用于新创建的对象的数据类型。对于已经存在的对象的数据类型无法进行序列化,无法兼容一些对旧服务进行微服务化改造的场景。2.灵活性差,使用ProtoBuf序列化时必须引入ProtoBuf自动生成的类代码,因此想要对ProtoBuf对象类型进行编解码就必须引入相关文件。对于一些通用测试服务场景,或者通用网关场景需要对不同服务进行统一处理时,必须引入所有服务对应的ProtoBuf文件,会对这些通用组件的扩展和维护带来一定的复杂度。
可见,现有序列化工具都采用侵入式的序列化方法,开发者需要使用序列化工具指定的数据结构,否则无法实现序列化,序列化的方法过于复杂。
发明内容
本发明实施例的目的是提供一种序列化编码、解码方法、装置及电子设备,以解决开发者需要使用序列化工具指定的数据结构,否则无法实现序列化,序列化的方法过于复杂的问题。
为了解决上述技术问题,本发明实施例是这样实现的:
第一方面,本发明实施例提供了一种序列化编码方法,包括:
获取待编码数据,并确定所述待编码数据的数据类型;
根据预设的序列化协议中与所述数据类型对应的Breeze编码协议,对所述待编码数据进行编码,得到序列化数据;其中,所述序列化数据包括:与所述数据类型对应的类型编号;
将得到的序列化数据发送给目标***。
第二方面,本发明实施例提供了一种序列化解码方法,包括:
获取序列化数据,并根据所述序列化数据包含类型编号确定所述解码数据的数据类型;
根据预设的序列化协议中与所述数据类型对应的Breeze解码协议,对所述序列化数据进行解码,得到解码数据。
第三方面,本发明实施例提供了一种序列化编码装置,包括:
提取模块,用于获取待编码数据,并确定所述待编码数据的数据类型;
编码模块,用于根据预设的序列化协议中与所述数据类型对应的Breeze编码协议,对所述待编码数据进行编码,得到序列化数据;其中,所述序列化数据包括:与所述数据类型对应的类型编号;
发送模块,用于将得到的序列化数据发送给目标***。
第四方面,本发明实施例提供了一种序列化解码装置,包括:
接收模块,用于获取序列化数据,并根据所述序列化数据包含类型编号确定所述解码数据的数据类型;
解码模块,用于根据预设的序列化协议中与所述数据类型对应的Breeze解码协议,对所述序列化数据进行解码,得到解码数据。
第五方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线;其中,所述处理器、所述通信接口以及所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现如第一、二方面所述的序列化编码、解码方法步骤。
第六方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如第一、二方面所述的序列化编码、解码方法步骤。
由以上本发明实施例提供的技术方案可见,本发明实施例通过获取待编码数据,并确定所述待编码数据的数据类型;根据预设的序列化协议中与所述数据类型对应的Breeze编码协议,对所述待编码数据进行编码,得到序列化数据;其中,所述序列化数据包括:与所述数据类型对应的类型编号;将得到的序列化数据发送给目标***。通过本发明实施例,实现了对已存在的对象数据进行跨语言编解码,通过在序列化数据中增加了数据类型等信息,从而使得解码侧可以根据数据类型对应的编解码协议对序列化数据进行准确解码,即使不使用本协议自动生成的类对象,在无schema描述的情况下依然可以进行自解码,转换成为通用对象,提高了使用的灵活性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的序列化编码、解码方法的一种流程示意图;
图2为本发明实施例提供的多计算机语言***的一种结构示意图;
图3为本发明实施例提供的序列化编码、解码方法的另一种流程示意图;
图4为本发明实施例提供的序列化解码方法的一种流程示意图;
图5为本发明实施例提供的序列化解码方法的另一种流程示意图;
图6为本发明实施例提供的序列化编码装置的一种结构示意图;
图7为本发明实施例提供的序列化解码装置的一种结构示意图;
图8为本发明实施例提供的电子设备的结构示意图。
具体实施方式
本发明实施例提供了一种序列化编码、解码方法、装置及电子设备。
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
如图1所示,本发明实施例提供一种序列化编码方法,该方法的执行主体可以为编码模块等。该方法具体可以包括以下步骤:
步骤S110、获取待编码数据,并确定所述待编码数据的数据类型。
在多计算机语言***中,由于涉及到多个软件***,如图2所示,在将源***A的数据传输到目标***B时,需要先通过设置在源***A的编码模块将待解码的数据即源***A的数据编码为二进制的序列化数据,然后传输至目标***B,通过设置在目标***B的解码模块对接收到的序列化数据进行解码,得到解码完成数据即为目标***B的数据。
编码模块在获取到源***A需要传输给目标***B的待编码数据时,先根据预设的数据分类方法,确定待编码数据的数据类型。
步骤S120、根据预设的序列化协议中与所述数据类型对应的Breeze编码协议,对所述待编码数据进行编码,得到序列化数据;其中,所述序列化数据包括:与所述数据类型对应的类型编号(type)。可以理解,与数据类型对应的类型编号可以指示对待编码数据进行编码时所使用的Breeze编码协议。
应理解的是,序列化协议为与各种数据类型对应的一系列Breeze编解码协议。
已知基于ProtoBuf序列化协议实现多个软件***之间的数据传输时,需要在源***A和目标***B均保存统一的ProtoBuf序列化协议的schema文件,源***A基于ProtoBuf序列化协议的schema文件进行编码,目标***B基于ProtoBuf序列化协议的schema文件进行解码,只能使用ProtoBuf自动生成的类对象,对于已经存在的对象的数据类型无法进行序列化。本申请实施例所述的Breeze编解码协议,则可以在源***A和目标***B没有schema文件的情况下,直接对已经存在的对象的数据类型进行编解码。
应理解的是,所述Breeze编解码协议也可以存在对应的schema文件,并将该schema保存到源***A和目标***B中进行编解码,但此时,并不影响已经存在的对象的数据类型的编解码过程。所述Breeze编解码协议的schema文件包括由schema文件进行描述的Breeze对象,该schema文件由关键字和数据类型组成,其中关键字用来规定对应section的作用;数据类型用来描述成员的数据类型。
所述scheme文件具体举例如下:
Figure BDA0003275919420000051
Figure BDA0003275919420000061
schema文件中的关键字说明见下表1所示进行举例说明:
Figure BDA0003275919420000062
Figure BDA0003275919420000071
表1
Schema文件中支持的数据类型如下表2所示进行举例说明:
Figure BDA0003275919420000072
表2
所述数据类型可根据实际的需要进行分类,在一种实施方式中,本申请实施例将所有数据类型主要分为三大类,包括:
基础数据类型;其中,所述基础数据类型包括:标准编码类型和直接编码类型,所述直接编码类型为满足预设直接编码条件的基础数据类型;
集合类型;其中,所述集合类型包括:普通集合类型和紧凑型集合类型,所述紧凑型集合类型为所述待编码数据中各元素的数据类型均相同的集合类型;
消息(message)类型,所述消息类型的待编码数据中各字段对应至少一种数据类型;其中,所述消息类型包括:标准消息类型和引用类型,所述引用类型为消息名称存在于预设引用表的消息类型。
所述基础数据类型可以包括如上表2所示的:string、int16、int32、int64、byte、bytes、float32和float64等。
所述集合类型包括Map类型、数组(array)类型;其中,所述Map类型为由健值对(key:value)作为元素组成的集合类型。
所述message类型的数据中的字段可以支持:基础数据类型、集合类型和message类型,即包括:string,int32,int64,int16,byte,bytes,float32,float64,map,array,message等。
进一步的,如图3所示,上述步骤S120的具体处理方式可以多种多样,以下提供一种具体实施方式。
在所述待编码数据为基础数据类型的情况下,判断所述待编码数据是否满足预设的直接编码条件。
所述直接编码条件可以根据实际的需要进行设定,可以包括:目标基础数据类型,以及在预设取值范围内的基础数据类型。其中,所述目标基础数据类型可以包括:空对象null、布尔值(TRUE、FALSE)、单字节型等。所述预设取值范围内的基础数据类型可以包括:长度小于63个字符串的string、数值在-16~46之间的整数型、数值在-8~15之间的长整数型。
若所述待编码数据满足直接编码条件,则所述待编码数据的序列化数据包括:所述待编码数据的类型编号。如图3所示,以直接编码类型对所述待编码数据进行编码,通过所述待编码数据的类型编号可以指示所述待编码数据的数据类型、数据长度(Size)和/或数据内容。
若所述待编码数据不满足直接编码条件,则所述待编码数据的序列化数据包括:所述待编码数据的类型编号、序列化数据的数据长度的序列码和所述待编码数据的数据内容的序列码。如图3所示,以标准编码类型对所述待编码数据进行编码。
应理解的是,所述数据长度的序列码和数据内容的序列码分别基于预设的编码协议得到的。所述编码协议可以根据实际的需要进行设定,例如,数据长度的序列码可基于可变长整型(varInt)编码得到;对于字符串的数据内容,数据内容的序列码可基于utf8编码得到;对于数值的数据内容,数据内容的序列码可基于zigzag编码得到。
具体举例如下:
1.待编码数据为string,数据内容为:hello,Breeze!
编码后的序列化数据为:
(14|″hello,Breeze!″的序列码)
其中,第一个数字14用于指示所述待编码数据的数据类型为:直接编码类型的字符串类型(direct string),以及所述序列化数据的数据长度。所述″hello,Breeze!″的序列码可以基于utf8编码得到:
(104 101 108 108 111 44 32 66 114 101 101 122 101 33)
2.待编码数据为int,数据内容为:266
编码后的序列化数据为:
(127|″266″的序列码)
其中,第一个数字127用于指示所述待编码数据的数据类型为:标准编码的int。所述″266″的序列码可以为基于zigzag编码得到:
(1484)
3.待编码数据为float32,数据内容为:3.1415
编码后的序列化数据为:
(159|″3.1415″的序列码)
其中,第一个数字159用于指示所述待编码数据的数据类型为:标准编码的float32。″3.1415″的序列码可以为基于zigzag编码得到:
(64 73 14 86)
在所述待编码数据为集合类型的情况下,判断所述待编码数据中各元素的数据类型是否相同:
若所述待编码数据中各元素的数据类型相同,则所述待编码数据的序列化数据包括:所述待编码数据的类型编号、所述待编码数据中元素的数量的序列码、所有元素的数据类型的类型编号,以及各元素的数据内容的序列码。如图3所示,以紧凑型集合类型对所述待编码数据进行编码。由于紧凑型(Packed)集合类型包含的元素均采用相同的数据类型,因此,在待编码数据的序列化数据中只需要一个元素的数据类型的类型编号即可。
若所述待编码数据中各元素的数据类型不同,则所述待编码数据的序列化数据包括:所述待编码数据的类型编号、所述待编码数据中元素的数量的序列码、以及各元素的序列码;其中,所述各元素的序列码包括:各元素的数据类型的类型编号和各元素的数据内容的序列码。如图3所示,以普通集合类型对所述待编码数据进行编码。
应理解的是,所述各元素的数据内容的序列码具体为,根据各元素的数据类型,基于本申请实施例的Breeze编码协议对各元素的数据内容进行编码后得到的序列码。
应理解的是,若所述待编码数据为Map类型,则每个元素实际包含key:value两个子元素,为此,在各元素的数据类型的类型编号中需要分别给出key的数据类型的类型编号和value的数据类型的类型编号,并在各元素的数据内容的序列码中分别给出key的数据内容的序列码和value的数据类型的序列码。
具体举例如下:
1.待编码数据为string,数据内容为{<姓名:张三>,<78:3.14>}
编码后的序列化数据为:
(217|2|第一元素中key″姓名″的序列码|第一元素中value″张三″的序列码|第二元素中
其中,第一个数字217用于指示所述待编码数据的数据类型为:普通集合类型的Map类型,第二个数字2用于指示所述待编码数据中包含的元素的数量为2,″姓名″的序列码包括″姓名″的数据类型的类型编号和″姓名″的数据内容的序列码:
(6|229 167 147 229 144 141)
″张三″的序列码包括″张三″的数据类型的类型编号和″张三″的数据内容的序列码:
(6|229 188 160 228 184 137)
″78″的序列码包括″78″的数据类型的类型编号和″78″的数据内容的序列码:
(127|156 1)
″3.14″的序列码包括″3.14″的数据类型的类型编号和″3.14″的数据内容的序列码:
(159|64 72 245 195)
2.待编码数据为Map,数据内容为:{<姓名:张三>,<省份:北京>}
编码后的序列化数据为:
(219|2|元素中key的数据类型的类型编号|元素中value的数据类型的类型编号|第
其中,第一个数字219用于指示所述待编码数据的数据类型为:PackedMap,第二个数字2用于指示所述待编码数据中包含的元素的数量为2,元素中key的数据类型的string,对应的类型编号为63,元素中value的数据类型为string,对应的类型编号为63,″姓名″的序列码包括″姓名″的数据类型的类型编号和″姓名″的数据内容的序列码:
(6|229 167 147 229 144 141)
″张三″的序列码包括″张三″的数据类型的类型编号和″张三″的数据内容的序列码:
(6|229 188 160 228 184 137)
″省份″的序列码包括″省份″的数据类型的类型编号和″省份″的数据内容的序列码:
(6|231 156 129 228 187 189)
″北京″的序列码包括″北京″的数据类型的类型编号和″北京″的数据内容的序列码:
(6|229 140 151 228 186 172)
3.待编码数据为数组类型,数据内容为:{张三,78,3.14}
编码后的序列化数据为:
(218|3|第一元素″张三″的序列码|第二元素″78″的序列码|第三元素″3.14″的序列码)
其中,第一个数字218用于指示所述待编码数据的数据类型为:普通集合类型的array,第二个数字3用于指示所述待编码数据中包含的元素的数量为3,″张三″的序列码包括″张三″的数据类型的类型编号和″张三″的数据内容的序列码:
(6|229 188 160 228 184 137)
″78″的序列码包括″78″的数据类型的类型编号和″78″的数据内容的序列码:
(127|156 1)
″3.14″的序列码包括″3.14″的数据类型的类型编号和″3.14″的数据内容的序列码:
(159|64 72 245 195)
4.待编码数据为数组类型,数据内容为:{张三,hello,test}
编码后的序列化数据为:
(220|3|元素的数据类型的类型编号|第一元素″张三″的序列码|第二元素″hello″的序
其中,第一个数字220用于指示所述待编码数据的数据类型为:Packed array,第二个数字3用于指示所述待编码数据中包含的元素的数量为3,元素的数据类型的string,对应的类型编号为63,″张三″的序列码包括″张三″的数据类型的类型编号和″张三″的数据内容的序列码:
(6|229 188 160 228 184 137)
″hello″的序列码包括″hello″的数据类型的类型编号和″hello″的数据内容的序列码:
(5|104 101 108 108 111)
″test″的序列码包括″test″的数据类型的类型编号和″test″的数据内容的序列码:
(4|116 101 115 116)
在所述待编码数据为消息类型的情况下,则判断引用表中是否包括所述待编码数据的消息名称,并根据scheme文件中与所述待编码数据对应的对象数据对所述待编码数据进行编码:
若所述引用表中不存在所述待编码数据的消息名称,则所述待编码数据的序列化数据包括:所述待编码数据的类型编号、所述待编码数据的消息名称的序列码、所述序列化数据的数据长度的序列码、所述待编码数据中各字段(field)的序列码,并且在所述引用表中记录所述待编码数据的消息名称;其中,所述各字段的序列码包括:各字段在所述待编码数据中的排列序号(fieldindex)、各字段的数据内容的序列码。如图3所示,以标准消息类型对所述待编码数据进行编码。
若所述引用表中存在所述待编码数据的消息名称,则所述待编码数据的序列化数据包括:所述待编码数据的类型编号、所述序列化数据的数据长度的序列码、所述待编码数据中各字段的序列码。如图3所示,以引用类型(ref message)对所述待编码数据进行编码。
应理解的是,各字段在所述待编码数据中的排列序号按照各字段在所述待编码数据中排列顺序得到。另外,若基于schema文件对待编码数据进行编解码,则需要先确认在所述schema文件中是否存在与所述待编码数据对应的对象类型,若存在则需要基于对象类型中各字段的排列顺序确定对应字段在所述待编码数据中的排列序号;否则,则依然基于各字段在所述待编码数据中的排列顺序确定对应的排列序号。
具体举例如下:
待编码数据为消息类型,数据内容:
Figure BDA0003275919420000131
1.若预置的引用表中不存在所述待编码数据的消息名称″motan.TestMsg″,则编码后的序列化数据为:
(222|待编码数据的消息名称″motan.TestMsg″的序列码|序列化数据的数据长度的序列
其中,第一个数字222用于指示所述待编码数据的数据类型为:标准消息类型;所述待编码数据的消息名称″motan.TestMsg″的序列码包括:消息名称″motan.TestMsg″的数据类型的类型编号和消息名称″motan.TestMsg″数据内容的序列码:
(16|109 111 116 97 110 46 84 101 115 116 83 117 98 77 115 103)
所示序列化数据的数据长度的序列码为(0 0 0 24)。
字段″MyString:subString″的序列码包括:字段″MyString:subString″在所述对象数据的排列序号(1)和字段的数据内容″subString″的序列号。数据内容″subString″的序列号包括:数据内容″subString″的数据类型的类型编号(9)、数据内容″subString″的序列码:
(115 117 98 83 116 114 105 110 103)
字段″MyInt:22″的序列码包括:字段″MyInt:22″在所述对象数据的排列序号(2)和字段的数据内容″22″的序列码:(102)。
字段″MyFloat32:3.14″的序列码包括:字段″MyFloat32:3.14″在所述对象数据的排列序号(4)、字段的数据内容″3.14″的序列号包括:数据内容″3.14″的数据类型的类型编号(159)和数据内容″subString″的序列码:(6472245195)。
字段″MyByte:17″的序列码包括:字段″MyByte:17″在所述对象数据的排列序号(156)和字段的数据内容″17″的序列码:(17)。
字段″MyBool:true″的序列码包括:字段″MyBool:true″在所述对象数据的排列序号(11)和字段的数据内容″true″的序列码:(154)。
2.若预置的引用表中存在所述待编码数据的消息名称″motan.TestMsg″,则编码后的序列化数据为:
(类型编号|序列化数据的数据长度的序列码|字段″MyString:subString″的序列码|字段
其中,所述类型编号可用于指示所述待编码数据为引用类型,以及在所述引用表中与所述待编码数据对应引用号(refIndex)。例如,若所述待编码数据的引用号为1,则所述序列化数据中的类型编号为224;若所述待编码数据的引用号为2,则所述序列化数据中的类型编号为225。
以下给出了本申请实施例的Breeze编解码协议的一种举例说明,如下表3所示:
Figure BDA0003275919420000141
Figure BDA0003275919420000151
Figure BDA0003275919420000161
表3
步骤S130、将得到的序列化数据发送给目标***。
若源***A发送给目标***B的数据集中还存在其它待编码数据,则编码模块将继续从数据集中获取新的待编码数据进行编码,并继续将得到的序列化数据发送给目标***B,由目标***B的解码模块对序列化数据进行解码,转换为目标***B的数据,从而实现了多计算机语言***间的数据传输。
由以上本发明实施例提供的技术方案可见,本发明实施例通过获取待编码数据,并确定所述待编码数据的数据类型;根据预设的序列化协议中与所述数据类型对应的Breeze编码协议,对所述待编码数据进行编码,得到序列化数据;其中,所述序列化数据包括:与所述数据类型对应的类型编号;将得到的序列化数据发送给目标***。通过本发明实施例,实现了对已存在的对象数据进行跨语言编解码,通过在序列化数据中增加了数据类型等信息,从而使得解码侧可以根据数据类型对应的编解码协议对序列化数据进行准确解码,即使不使用本协议自动生成的类对象,在无schema描述的情况下依然可以进行自解码,转换成为通用对象,提高了使用的灵活性。
对应上述实施例提供的序列化编码方法,如图4所示,本发明实施例还提供一种序列化解码方法,该方法的执行主体可以为解码模块等。该方法具体可以包括以下步骤。
步骤S410、获取序列化数据,并根据所述序列化数据包含类型编号确定所述解码数据的数据类型。
进一步地,所述数据类型包括:
基础数据类型;其中,所述基础数据类型包括:标准编码类型和直接编码类型,所述直接编码类型为满足预设直接编码条件的基础数据类型;
集合类型;其中,所述集合类型包括:普通集合类型和紧凑型集合类型,所述紧凑型集合类型为所述待编码数据中各元素的数据类型均相同的集合类型;
消息类型,所述消息类型的待编码数据中各字段对应至少一种数据类型;其中,所述消息类型包括:标准消息类型和引用类型,所述引用类型为消息名称存在于预设引用表的消息类型。
步骤S420、根据预设的序列化协议中与所述数据类型对应的Breeze解码协议,对所述序列化数据进行解码,得到解码数据。
进一步地,如图5所示,所述步骤S402具体处理方式可以多种多样,以下提供一种具体实施方式。
在所述解码数据的数据类型为直接编码类型的情况下,对所述序列化数据包括的所述序列化数据的类型编号进行解码。通过对所述序列化数据的类型编号进行解码可以得到解码数据的数据类型和数据长度和/或数据内容。
在所述解码数据的数据类型为标准编码类型的情况下,对所述序列化数据包括的所述序列化数据的类型编号和数据内容的序列码进行解码。通过对所述序列化数据的类型编号进行解码得到所述解码数据的数据类型,通过对所述数据内容的序列码进行解码得到所述解码数据的数据内容。
在所述解码数据的数据类型为紧凑型集合类型的情况下,对所述序列化数据包括的所述序列化数据的类型编号、元素的数量的序列码、所有元素的数据类型的类型编号,和各元素的数据内容的序列码进行解码。通过对所述序列化数据的类型编号进行解码得到所述解码数据的数据类型,通过对元素的数量的序列码进行解码得到所述解码数据中元素的数量,通过对所有元素的数据类型的类型编号得到所述解码数据的数据类型中各元素的数据类型,通过对所述各元素的数据内容的序列码进行解码得到所述解码数据中各元素的数据内容。
在所述解码数据的数据类型为普通集合类型的情况下,对所述序列化数据包括的所述序列化数据的类型编号、元素的数量的序列码、以及各元素的序列码进行解码;其中,所述各元素的序列码包括:各元素的数据类型的类型编号和各元素的数据内容的序列码。通过对所述序列化数据包括的所述序列化数据的类型编号进行解码得到所述解码数据的数据类型,通过对元素的数量的序列码进行解码得到所述解码数据中元素的数量,通过对各元素的序列码进行解码得到所述解码数据中各元素的数据类型和数据内容。
在所述序列化数据为标准消息类型的情况下,对所述序列化数据包括的所述序列化数据的类型编号、消息名称的序列码、所述序列化数据的数据长度的序列码、各字段的序列码进行解码,并且在所述引用表中记录所述消息名称;其中,所述各字段的序列码包括:各字段在所述对象数据中的排列序号、各字段的数据内容的序列码。通过对所述序列化数据的类型编号进行解码得到所述解码数据的数据类型,通过对消息名称的序列码进行解码得到所述解码数据的消息名称,对所述序列化数据的数据长度的序列码进行解码得到所述序列化数据的数据长度,通过对各字段的序列码进行解码得到所述解码数据中各字段在所述对象数据中的排列序号和数据内容。
在所述序列化数据为引用类型的情况下,对所述序列化数据包括的所述序列化数据的类型编号、所述序列化数据的数据长度的序列码、所述序列化数据中各字段的序列码进行解码,并根据所述序列化数据的类型编号中提取的引用号从所述引用表中获取消息名称。通过对所述序列化数据的类型编号得到所述解码数据的数据类型和引用号,通过对所述序列化数据的数据长度的序列码进行解码得到所述对象类型的长度,通过对各字段的序列码进行解码得到各字段在所述对象数据中的排列序号和数据内容。
本申请实施例的Breeze编解码协议如下表3所示进行举例说明。
解码模块依次从缓存区中提取序列码数据并进行解码以得到适用于目标***B的解码数据,直到缓存区的序列码数据全部解码完成。
由以上本发明实施例提供的技术方案可见,本发明实施例通过获取序列化数据,并根据所述序列化数据包含类型编号确定所述解码数据的数据类型;根据预设的序列化协议中与所述数据类型对应的Breeze解码协议,对所述序列化数据进行解码,得到解码数据。通过本发明实施例,实现了对已存在的对象数据进行跨语言编解码,通过在序列化数据中增加了数据类型等信息,从而使得解码侧可以根据数据类型对应的编解码协议对序列化数据进行准确解码,即使不使用本协议自动生成的类对象,在无schema描述的情况下依然可以进行自解码,转换成为通用对象,提高了使用的灵活性。
对应上述实施例提供的序列化编码方法,基于相同的技术构思,本发明实施例还提供了一种序列化编码装置,图6为本发明实施例提供的序列化解码装置的模块组成示意图,该序列化编码装置用于执行图1至图3描述的序列化编码方法,如图6所示,该序列化编码装置包括:提取模块601、编码模块602和发送模块603。
所述提取模块601用于获取待编码数据,并确定所述待编码数据的数据类型;所述编码模块602用于根据预设的序列化协议中与所述数据类型对应的Breeze编码协议,对所述待编码数据进行编码,得到序列化数据;其中,所述序列化数据包括:与所述数据类型对应的类型编号;所述发送模块603用于将得到的序列化数据发送给目标***。
进一步地,所述数据类型包括:
基础数据类型;其中,所述基础数据类型包括:标准编码类型和直接编码类型,所述直接编码类型为满足预设直接编码条件的基础数据类型;
集合类型;其中,所述集合类型包括:普通集合类型和紧凑型集合类型,所述紧凑型集合类型为所述待编码数据中各元素的数据类型均相同的集合类型;
消息类型,所述消息类型的待编码数据中各字段对应至少一种数据类型;其中,所述消息类型包括:标准消息类型和引用类型,所述引用类型为消息名称存在于预设引用表的消息类型。
进一步地,所述编码模块602用于:
在所述待编码数据为基础数据类型的情况下,判断所述待编码数据是否满足预设的直接编码条件:
若所述待编码数据满足直接编码条件,则所述待编码数据的序列化数据包括:所述待编码数据的类型编号;
若所述待编码数据不满足直接编码条件,则所述待编码数据的序列化数据包括:所述待编码数据的类型编号、所述待编码数据的数据内容的序列码;
在所述待编码数据为集合类型的情况下,判断所述待编码数据中各元素的数据类型是否相同:
若所述待编码数据中各元素的数据类型相同,则所述待编码数据的序列化数据包括:所述待编码数据的类型编号、所述待编码数据中元素的数量的序列码、所有元素的数据类型的类型编号,以及各元素的数据内容的序列码;
若所述待编码数据中各元素的数据类型不同,则所述待编码数据的序列化数据包括:所述待编码数据的类型编号、所述待编码数据中元素的数量的序列码、以及各元素的序列码;其中,所述各元素的序列码包括:各元素的数据类型的类型编号和各元素的数据内容的序列码;
在所述待编码数据为消息类型的情况下,则判断引用表中是否包括所述待编码数据的消息名称,并根据描述文件中与所述待编码数据对应的对象数据对所述待编码数据进行编码:
若所述引用表中不存在所述待编码数据的消息名称,则所述待编码数据的序列化数据包括:所述待编码数据的类型编号、所述待编码数据的消息名称的序列码、所述序列化数据的数据长度的序列码、所述待编码数据中各字段的序列码,并且在所述引用表中记录所述待编码数据的消息名称;其中,所述各字段的序列码包括:各字段在所述待编码数据中的排列序号、各字段的数据内容的序列码;
若所述引用表中存在所述待编码数据的消息名称,则所述待编码数据的序列化数据包括:所述待编码数据的类型编号、所述引用表中与所述待编码数据对应的引用号、所述序列化数据的数据长度的序列码、所述待编码数据中各字段的序列码。
由以上本发明实施例提供的技术方案可见,本发明实施例通过获取待编码数据,并确定所述待编码数据的数据类型;根据预设的序列化协议中与所述数据类型对应的Breeze编码协议,对所述待编码数据进行编码,得到序列化数据;其中,所述序列化数据包括:与所述数据类型对应的类型编号;将得到的序列化数据发送给目标***。通过本发明实施例,实现了对已存在的对象数据进行跨语言编解码,通过在序列化数据中增加了数据类型等信息,从而使得解码侧可以根据数据类型对应的编解码协议对序列化数据进行准确解码,即使不使用本协议自动生成的类对象,在无schema描述的情况下依然可以进行自解码,转换成为通用对象,提高了使用的灵活性。
对应上述实施例提供的序列化解码方法,基于相同的技术构思,本发明实施例还提供了一种序列化解码装置,图7为本发明实施例提供的序列化解码装置的模块组成示意图,该序列化解码装置用于执行图4至图5描述的序列化解码方法,如图7所示,该序列化解码装置包括:接收模块701和解码模块702。
所述接收模块701用于获取序列化数据,并根据所述序列化数据包含类型编号确定所述解码数据的数据类型;所述解码模块702用于根据预设的序列化协议中与所述数据类型对应的Breeze解码协议,对所述序列化数据进行解码,得到解码数据。
进一步地,基础数据类型;其中,所述基础数据类型包括:标准编码类型和直接编码类型,所述直接编码类型为满足预设直接编码条件的基础数据类型;
集合类型;其中,所述集合类型包括:普通集合类型和紧凑型集合类型,所述紧凑型集合类型为所述待编码数据中各元素的数据类型均相同的集合类型;
消息类型,所述消息类型的待编码数据中各字段对应至少一种数据类型;其中,所述消息类型包括:标准消息类型和引用类型,所述引用类型为消息名称存在于预设引用表的消息类型。
进一步地,所述解码模块702用于:
在所述解码数据的数据类型为直接编码类型的情况下,对所述序列化数据包括的所述序列化数据的类型编号进行解码;
在所述解码数据的数据类型为标准编码类型的情况下,对所述序列化数据包括的所述序列化数据的类型编号和数据内容的序列码进行解码;
在所述解码数据的数据类型为紧凑型集合类型的情况下,对所述序列化数据包括的所述序列化数据的类型编号、元素的数量的序列码、所有元素的数据类型的类型编号,和各元素的数据内容的序列码进行解码;
在所述解码数据的数据类型为普通集合类型的情况下,对所述序列化数据包括的所述序列化数据的类型编号、元素的数量的序列码、以及各元素的序列码进行解码;其中,所述各元素的序列码包括:各元素的数据类型的类型编号和各元素的数据内容的序列码;
在所述序列化数据为标准消息类型的情况下,对所述序列化数据包括的所述序列化数据的类型编号、消息名称的序列码、所述序列化数据的数据长度的序列码、各字段的序列码进行解码,并且在所述引用表中记录所述消息名称;其中,所述各字段的序列码包括:各字段在所述对象数据中的排列序号、各字段的数据内容的序列码;
在所述序列化数据为引用类型的情况下,对所述序列化数据包括的所述序列化数据的类型编号、所述序列化数据的数据长度的序列码、所述序列化数据中各字段的序列码进行解码,并根据所述序列化数据的类型编号中提取的引用号从所述引用表中获取消息名称。
由以上本发明实施例提供的技术方案可见,本发明实施例通过获取序列化数据,并根据所述序列化数据包含类型编号确定所述解码数据的数据类型;根据预设的序列化协议中与所述数据类型对应的Breeze解码协议,对所述序列化数据进行解码,得到解码数据。通过本发明实施例,实现了对已存在的对象数据进行跨语言编解码,通过在序列化数据中增加了数据类型等信息,从而使得解码侧可以根据数据类型对应的编解码协议对序列化数据进行准确解码,即使不使用本协议自动生成的类对象,在无schema描述的情况下依然可以进行自解码,转换成为通用对象,提高了使用的灵活性。
本发明实施例提供的序列化编码、解码装置能够实现上述序列化编码、解码方法对应的实施例中的各个过程,为避免重复,这里不再赘述。
需要说明的是,本发明实施例提供的序列化编码、解码装置与本发明实施例提供的序列化编码、解码方法基于同一发明构思,因此该实施例的具体实施可以参见前述序列化编码、解码方法的实施,重复之处不再赘述。
对应上述实施例提供的序列化编码、解码方法,基于相同的技术构思,本发明实施例还提供了一种电子设备,该电子设备用于执行上述的序列化编码、解码方法,图8为实现本发明各个实施例的一种电子设备的结构示意图,如图8所示。电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器801和存储器802,存储器802中可以存储有一个或一个以上存储应用程序或数据。其中,存储器802可以是短暂存储或持久存储。存储在存储器802的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对电子设备中的一系列计算机可执行指令。更进一步地,处理器801可以设置为与存储器802通信,在电子设备上执行存储器802中的一系列计算机可执行指令。电子设备还可以包括一个或一个以上电源803,一个或一个以上有线或无线网络接口804,一个或一个以上输入输出接口805,一个或一个以上键盘806。
具体在本实施例中,电子设备包括有处理器、通信接口、存储器和通信总线;其中,所述处理器、所述通信接口以及所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现以下方法步骤:
获取待编码数据,并确定所述待编码数据的数据类型;
根据预设的序列化协议中与所述数据类型对应的Breeze编码协议,对所述待编码数据进行编码,得到序列化数据;其中,所述序列化数据包括:与所述数据类型对应的类型编号;
将得到的序列化数据发送给目标***。
本申请实施例还提供一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现以下方法步骤:
获取待编码数据,并确定所述待编码数据的数据类型;
根据预设的序列化协议中与所述数据类型对应的Breeze编码协议,对所述待编码数据进行编码,得到序列化数据;其中,所述序列化数据包括:与所述数据类型对应的类型编号;
将得到的序列化数据发送给目标***。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,电子设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、装置或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种序列化编码方法,其特征在于,所述方法包括:
获取待编码数据,并确定所述待编码数据的数据类型;
根据预设的序列化协议中与所述数据类型对应的Breeze编码协议,对所述待编码数据进行编码,得到序列化数据;其中,所述序列化数据包括:与所述数据类型对应的类型编号;
将得到的序列化数据发送给目标***。
2.根据权利要求1所述的方法,其特征在于,所述数据类型包括:
基础数据类型;其中,所述基础数据类型包括:标准编码类型和直接编码类型,所述直接编码类型为满足预设直接编码条件的基础数据类型;
集合类型;其中,所述集合类型包括:普通集合类型和紧凑型集合类型,所述紧凑型集合类型为所述待编码数据中各元素的数据类型均相同的集合类型;
消息类型,所述消息类型的待编码数据中各字段对应至少一种数据类型;其中,所述消息类型包括:标准消息类型和引用类型,所述引用类型为消息名称存在于预设引用表的消息类型。
3.根据权利要求2所示的方法,其特征在于,所述根据预设的序列化协议中与所述数据类型对应的Breeze编码协议,对所述待编码数据进行编码,得到序列化数据,包括:
在所述待编码数据为基础数据类型的情况下,判断所述待编码数据是否满足预设的直接编码条件:
若所述待编码数据满足直接编码条件,则所述待编码数据的序列化数据包括:所述待编码数据的类型编号;
若所述待编码数据不满足直接编码条件,则所述待编码数据的序列化数据包括:所述待编码数据的类型编号、所述待编码数据的数据内容的序列码;
在所述待编码数据为集合类型的情况下,判断所述待编码数据中各元素的数据类型是否相同:
若所述待编码数据中各元素的数据类型相同,则所述待编码数据的序列化数据包括:所述待编码数据的类型编号、所述待编码数据中元素的数量的序列码、所有元素的数据类型的类型编号,以及各元素的数据内容的序列码;
若所述待编码数据中各元素的数据类型不同,则所述待编码数据的序列化数据包括:所述待编码数据的类型编号、所述待编码数据中元素的数量的序列码、以及各元素的序列码;其中,所述各元素的序列码包括:各元素的数据类型的类型编号和各元素的数据内容的序列码;
在所述待编码数据为消息类型的情况下,则判断引用表中是否包括所述待编码数据的消息名称,并根据描述文件中与所述待编码数据对应的对象数据对所述待编码数据进行编码:
若所述引用表中不存在所述待编码数据的消息名称,则所述待编码数据的序列化数据包括:所述待编码数据的类型编号、所述待编码数据的消息名称的序列码、所述序列化数据的数据长度的序列码、所述待编码数据中各字段的序列码,并且在所述引用表中记录所述待编码数据的消息名称;其中,所述各字段的序列码包括:各字段在所述待编码数据中的排列序号、各字段的数据内容的序列码;
若所述引用表中存在所述待编码数据的消息名称,则所述待编码数据的序列化数据包括:所述待编码数据的类型编号、所述引用表中与所述待编码数据对应的引用号、所述序列化数据的数据长度的序列码、所述待编码数据中各字段的序列码。
4.一种序列化解码方法,其特征在于,所述方法包括:
获取序列化数据,并根据所述序列化数据包含的类型编号确定所述解码数据的数据类型;
根据预设的序列化协议中与所述数据类型对应的Breeze解码协议,对所述序列化数据进行解码,得到解码数据。
5.根据权利要求4所述的方法,其特征在于,所述数据类型包括:
基础数据类型;其中,所述基础数据类型包括:标准编码类型和直接编码类型,所述直接编码类型为满足预设直接编码条件的基础数据类型;
集合类型;其中,所述集合类型包括:普通集合类型和紧凑型集合类型,所述紧凑型集合类型为所述待编码数据中各元素的数据类型均相同的集合类型;
消息类型,所述消息类型的待编码数据中各字段对应至少一种数据类型;其中,所述消息类型包括:标准消息类型和引用类型,所述引用类型为消息名称存在于预设引用表的消息类型。
6.根据权利要求5所示的方法,其特征在于,所述根据预设的序列化协议中与所述数据类型对应的Breeze解码协议,对所述序列化数据进行解码,得到解码数据,包括:
在所述解码数据的数据类型为直接编码类型的情况下,对所述序列化数据包括的所述序列化数据的类型编号进行解码;
在所述解码数据的数据类型为标准编码类型的情况下,对所述序列化数据包括的所述序列化数据的类型编号和数据内容的序列码进行解码;
在所述解码数据的数据类型为紧凑型集合类型的情况下,对所述序列化数据包括的所述序列化数据的类型编号、元素的数量的序列码、所有元素的数据类型的类型编号,和各元素的数据内容的序列码进行解码;
在所述解码数据的数据类型为普通集合类型的情况下,对所述序列化数据包括的所述序列化数据的类型编号、元素的数量的序列码、以及各元素的序列码进行解码;其中,所述各元素的序列码包括:各元素的数据类型的类型编号和各元素的数据内容的序列码;
在所述序列化数据为标准消息类型的情况下,对所述序列化数据包括的所述序列化数据的类型编号、消息名称的序列码、所述序列化数据的数据长度的序列码、各字段的序列码进行解码,并且在所述引用表中记录所述消息名称;其中,所述各字段的序列码包括:各字段在所述待编码数据中的排列序号、各字段的数据内容的序列码;
在所述序列化数据为引用类型的情况下,对所述序列化数据包括的所述序列化数据的类型编号、所述序列化数据的数据长度的序列码、所述序列化数据中各字段的序列码进行解码,并根据所述序列化数据的类型编号中提取的引用号从所述引用表中获取消息名称。
7.一种序列化编码装置,其特征在于,所述装置包括:
提取模块,用于获取待编码数据,并确定所述待编码数据的数据类型;
编码模块,用于根据预设的序列化协议中与所述数据类型对应的Breeze编码协议,对所述待编码数据进行编码,得到序列化数据;其中,所述序列化数据包括:与所述数据类型对应的类型编号;
发送模块,用于将得到的序列化数据发送给目标***。
8.一种序列化解码装置,其特征在于,所述装置包括:
接收模块,用于获取序列化数据,并根据所述序列化数据包含的类型编号确定所述解码数据的数据类型;
解码模块,用于根据预设的序列化协议中与所述数据类型对应的Breeze解码协议,对所述序列化数据进行解码,得到解码数据。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线;其中,所述处理器、所述通信接口以及所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现如权利要求1-6任一项所述的序列化编码、解码方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-6任一项所述的序列化编码、解码方法步骤。
CN202111117236.XA 2021-09-23 2021-09-23 一种序列化编码、解码方法、装置及电子设备 Pending CN114020272A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111117236.XA CN114020272A (zh) 2021-09-23 2021-09-23 一种序列化编码、解码方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111117236.XA CN114020272A (zh) 2021-09-23 2021-09-23 一种序列化编码、解码方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN114020272A true CN114020272A (zh) 2022-02-08

Family

ID=80054727

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111117236.XA Pending CN114020272A (zh) 2021-09-23 2021-09-23 一种序列化编码、解码方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN114020272A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115361454A (zh) * 2022-10-24 2022-11-18 北京智芯微电子科技有限公司 消息序列编码、解码、传输方法及编码、解码设备
CN115630614A (zh) * 2022-12-23 2023-01-20 深圳曼顿科技有限公司 数据传输方法、装置、电子设备与介质
CN117498987A (zh) * 2024-01-02 2024-02-02 南京元阵视界科技有限公司 一种应用于大规模网络数据传输的方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115361454A (zh) * 2022-10-24 2022-11-18 北京智芯微电子科技有限公司 消息序列编码、解码、传输方法及编码、解码设备
CN115361454B (zh) * 2022-10-24 2023-03-24 北京智芯微电子科技有限公司 消息序列编码、解码、传输方法及编码、解码设备
CN115630614A (zh) * 2022-12-23 2023-01-20 深圳曼顿科技有限公司 数据传输方法、装置、电子设备与介质
CN115630614B (zh) * 2022-12-23 2023-03-28 深圳曼顿科技有限公司 数据传输方法、装置、电子设备与介质
CN117498987A (zh) * 2024-01-02 2024-02-02 南京元阵视界科技有限公司 一种应用于大规模网络数据传输的方法
CN117498987B (zh) * 2024-01-02 2024-03-15 南京元阵视界科技有限公司 一种应用于大规模网络数据传输的方法

Similar Documents

Publication Publication Date Title
CN114020272A (zh) 一种序列化编码、解码方法、装置及电子设备
CN107919943B (zh) 二进制数据的编码、解码方法和装置
CN111027656B (zh) 二维码生成及识别方法、装置、电子设备、存储介质
CN109104405B (zh) 二进制协议编码、解码方法和装置
CN108363588B (zh) 实现web与原生功能交互的方法、电子装置及可读存储介质
CN109697278B (zh) 将根据模式以人类可读的文本格式化的数据编码为二进制
CN107566090B (zh) 一种定长/变长的文本报文处理方法及装置
EA019680B1 (ru) Способ и система доступа к сервису
CN109062906B (zh) 程序语言资源的翻译方法及装置
CN108334609A (zh) Oracle中实现JSON格式数据存取的方法、装置、设备及存储介质
CN110769002A (zh) 基于LabVIEW的报文解析方法、***、电子设备和介质
WO2020224380A1 (zh) 一种基于区块链的数据处理方法及装置
CN112417515A (zh) 组态软件协议处理方法及***
CN113923268B (zh) 一种针对多版本通信规约的解析方法、设备及存储介质
CN114492316B (zh) 数据交换编解码方法和***
CN114490641A (zh) 一种工业互联网数据的共享方法、设备及介质
CN110020343B (zh) 网页编码格式的确定方法和装置
CN113905093A (zh) 序列化、反序列化方法、装置及电子设备
CN110019347B (zh) 一种区块链的数据处理方法、装置及终端设备
CN106648912B (zh) 数据采集平台中数据处理的模块化方法及装置
CN113051202A (zh) 接口适配方法、装置、电子设备和计算机可读存储介质
CN116431585A (zh) 文件的压缩方法及其装置、文件的解压方法及其装置
CN111353279A (zh) 字符编码的转换方法、装置和计算机存储介质
US10831708B2 (en) Systems and methods for improved processing of a data file
US10742783B2 (en) Data transmitting apparatus, data receiving apparatus and method thereof having encoding or decoding functionalities

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