CN117176954A - 数据编码及解码方法、装置、介质、设备及产品 - Google Patents
数据编码及解码方法、装置、介质、设备及产品 Download PDFInfo
- Publication number
- CN117176954A CN117176954A CN202210585327.4A CN202210585327A CN117176954A CN 117176954 A CN117176954 A CN 117176954A CN 202210585327 A CN202210585327 A CN 202210585327A CN 117176954 A CN117176954 A CN 117176954A
- Authority
- CN
- China
- Prior art keywords
- code
- data
- decoding
- coding
- definition
- 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 106
- 238000012545 processing Methods 0.000 claims abstract description 45
- 238000004590 computer program Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 19
- 238000011161 development Methods 0.000 abstract description 13
- 238000012423 maintenance Methods 0.000 abstract description 12
- 230000006870 function Effects 0.000 description 38
- 230000008569 process Effects 0.000 description 29
- 238000010586 diagram Methods 0.000 description 23
- 238000012546 transfer Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 9
- 230000036541 health Effects 0.000 description 8
- 238000013507 mapping Methods 0.000 description 6
- 108091026890 Coding region Proteins 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 101100324465 Caenorhabditis elegans arr-1 gene Proteins 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000005693 optoelectronics Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请的实施例揭示了一种数据编码及解码方法、装置、介质、设备及产品。该数据编码及解码方法通过集中存储编码算法,然后根据接收到的编码请求中携带的码定义匹配对应的目标编码算法,以根据目标编码算法对编码请求中携带的码数据进行编码处理,进而使请求方只需对码数据进行码定义的获取即可,不用在请求方开发编码代码,且通过对请求方的编码请求进行集中处理,可以对编码代码进行复用,降低了开发成本以及维护成本。
Description
技术领域
本申请涉及计算机及通信技术领域,具体而言,涉及一种数据编码方法、数据解码方法、装置、计算机可读存储介质、电子设备及计算机程序产品。
背景技术
随着计算机技术和网络技术的快速发展,越来越多的应用场景需要将资源信息进行数字化处理和标准化处理以提升信息交互的便捷度。
相关技术中可以由计算机系统根据固定的编码算法对资源信息进行编解码,而对于不同业务,每个业务都要根据对应的业务需求实现一套自己的编解码算法,在随着业务种类的不断增长下,导致需要管理维护的编解码算法越来越多,且对业务的编解码算法进行迭代更新的操作复杂。
因此,采用现有技术的方法进行编解码存在管理维护成本高,编解码算法迭代更新复杂等问题。
发明内容
为解决上述技术问题,本申请的实施例提供了一种数据编码方法、数据解码方法、装置、计算机可读存储介质、电子设备及计算机程序产品。
根据本申请实施例的一个方面,提供了一种数据编码方法,包括:接收编码请求,编码请求中携带有码数据和码定义,码定义用于指示对码数据进行编码处理所采用的数据结构;从编码算法集合中选取与码定义匹配的目标编码算法;根据目标编码算法对码数据进行编码处理,以得到具备上述数据结构的码串数据。
根据本申请实施例的一个方面,提供了一种数据解码方法,包括:接收解码请求,解码请求中携带有待解码的码串数据;从解码算法集合中选取与待解码的码串数据对应的码定义匹配的目标解码算法,码定义用于指示待解码的码串数据具备的数据结构;根据目标解码算法对待解码的码串数据进行解码处理,以得到具备上述数据结构的码数据。
根据本申请实施例的一个方面,提供了一种数据编码装置,包括:编码请求接收模块,配置为接收编码请求,编码请求中携带有码数据和码定义,码定义用于指示对码数据进行编码处理所采用的数据结构;目标编码算法获取模块,配置为从编码算法集合中选取与码定义匹配的目标编码算法;编码处理模块,配置为根据目标编码算法对码数据进行编码处理,以得到具备数据结构的码串数据。
根据本申请实施例的一个方面,提供了一种数据解码装置,包括:解码请求接收模块,配置为接收解码请求,解码请求中携带有待解码的码串数据;目标解码算法获取模块,配置为从解码算法集合中选取与待解码的码串数据对应的码定义匹配的目标解码算法,码定义用于指示待解码的码串数据具备的数据结构;解码处理模块,配置为根据目标解码算法对待解码的码串数据进行解码处理,以得到具备上述数据结构的码数据。
根据本申请实施例的一个方面,提供了一种电子设备,包括:存储器,存储有计算机可读指令;处理器,读取存储器存储的计算机可读指令,以执行如上所述的数据编码方法或数据解码方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行如上所述的数据编码方法或数据解码方法。
根据本申请实施例的一个方面,还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上所述的数据编码方法或数据解码方法中的步骤。
在本申请的实施例提供的技术方案中,通过集中存储编码算法,然后根据编码请求中携带的码定义匹配对应的目标编码算法,以根据目标编码算法对编码请求中携带的码数据进行编码处理,进而使请求方只需对码数据进行码定义的获取即可,不用在请求方开发编码代码,且通过对请求方的编码请求进行集中处理,可以对编码代码进行复用,降低了开发成本。同时,当请求方需要对某业务的码数据进行编码方式的修改时,只需修改码定义即可,降低了维护成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本申请涉及的实施环境的示意图;
图2是本申请的一示例性实施例示出的数据编码方法的流程图;
图3是本申请的一示例性实施例示出的获取码定义的示意图;
图4是本申请的一示例性实施例示出的对码数据进行编码处理的示意图;
图5是本申请的另一示例性实施例示出的数据编码方法的流程图;
图6是本申请的另一示例性实施例示出的对码数据进行编码处理的示意图;
图7是本申请的一示例性实施例示出的数据解码方法的流程图;
图8是本申请的一示例性实施例示出的对待解码的码串数据进行解码处理的示意图;
图9是本申请的另一示例性实施例示出的对待解码的码串数据进行解码处理的示意图;
图10是本申请的一示例性实施例示出的数据编码装置的框图;
图11是本申请的一示例性实施例示出的数据解码装置的框图;
图12示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
在本申请中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
编码是指将信息从一种形式或格式转换为另一种形式或格式的过程,编码也称为计算机编程语言的代码,具体可以用预设规则将文字、数字或其它对象编成数码,或将信息、数据转换成规定的电脉冲信号。解码是编码的逆过程。
相关技术中可以由计算机系统根据固定的编码算法对资源信息进行编解码,而对于不同业务,每个业务都要根据对应的业务需求实现一套自己的编解码算法,增加了开发成本,且在随着业务种类的不断增长下,导致需要管理维护的编解码算法越来越多。例如,当需要向业务的编解码算法中新增字段时,需要对该业务的编码相关代码以及解码相关代码均执行字段新增操作,使得对业务的编解码算法进行迭代更新的操作复杂。
基于此,为了降低业务的编解码的开发成本以及维护成本,提高对业务的编解码算法的管理效率,本申请的实施例提出一种数据编码及解码方法、装置、计算机可读存储介质、电子设备及计算机程序产品。
下面对本申请实施例所提供的数据编码及解码方法进行说明,其中,图1是本申请中涉及的一种实施环境的示意图。如图1所示,该实施环境包括请求方110和数据处理方120,数据处理方包括和数据编码端和数据解码端,请求方110和数据处理方120可以通过无线网络或有线网络进行直接或间接地连接,本申请在此不做限制。
请求方110可以是终端设备,也可以是服务器;数据编码端和数据解码端可以是终端设备,也可以是服务器,数据编码端用于为请求方110提供数据编码服务,数据解码端用于为请求方110提供数据解码服务,其中,数据编码端和数据解码端之间可以相互分离部署,也可以集中部署,本申请对此不做具体限制。需要说明的是,上述请求方110可以仅为一个,或者上述请求方110为几个或几十个,或者更多数量,本申请实施例对请求方110的数量和设备类型不加以限定。为了便于描述,以请求方110为终端设备,数据编码端和数据解码端为服务器为例对本申请实施例提供的数据编码方法以及数据解码方法进行说明。
终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端等,但并不局限于此。
服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
可选的,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,使用包括超文本标记语言(Hyper Text Mark-up Language,HTML)、可扩展标记语言(Extensible MarkupLanguage,XML)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(Internet ProtocolSecurity,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
请参阅图2,图2是本申请的一示例性实施例示出的数据编码方法的流程图。该数据编码方法可以应用于图1所示的实施环境,并由该实施环境中的数据编码端具体执行。应理解的是,该方法也可以适用于其它的示例性实施环境,并由其它实施环境中的设备具体执行,本实施例不对该方法所适用的实施环境进行限制。
如图2所示,在一示例性的实施例中,数据编码方法至少包括步骤S210至步骤S230,详细介绍如下:
步骤S210,接收编码请求,编码请求中携带有码数据和码定义,码定义用于指示对码数据进行编码处理所采用的数据结构。
需要说明的是,码数据是指需要进行编码处理的对象,可以是文字、数字、图像、视频等数据,本申请对此不做具体限制。码定义用于指示对码数据进行编码处理所采用的数据结构,数据结构用于限定编码处理的结果对应的数据属性信息,如编码处理的结果包含的字段数量、字段类型、字段长度等信息。
数据编码端在接收到请求方发起的编码请求后,调用编码组件接口,并将该编码请求传递至编码组件接口,以使编码组件针对编码请求中的码数据和码定义执行对应的编码处理。其中,编码组件是指对编码算法进行封装后的代码组件,编码算法是指执行编码处理时所使用的算法。
码定义可以是用户在请求方预先设定的,也可以是请求方根据需要进行编码处理的码数据自动生成的,本申请对此不做具体限制。
示例性的,请求方存储有业务数据以及每个业务对应的码定义,在请求方接收到用户针对业务的编码触发操作后,根据该编码触发操作从业务数据中选取与该业务相关的业务数据得到码数据,并获取与该业务匹配的码定义。
示例性的,请参阅图3,图3为获取码定义的示意图,如图3所示,请求方存储有业务数据,在请求方接收到用户针对业务的编码触发操作后,根据该编码触发操作从业务数据中选取与该业务相关的业务数据得到码数据。然后,将各个业务数据的类型作为对应的业务数据的子码定义,并对各个业务数据的子码定义进行汇总,得到码定义,以使请求方可以对包含不同类型业务数据的码数据分别生成码定义,提高请求方的码定义生成的灵活性。
步骤S220,从编码算法集合中选取与码定义匹配的目标编码算法。
需要说明的是,编码组件中含有编码算法集合,编码算法集合中包括多个编码算法。
数据编码端根据码定义从编码算法集合中进行编码算法的选择,并将选择的编码算法作为目标编码算法。其中,目标编码算法可以是一个,也可以是多个,本申请对此不做具体限制。
示例性的,请求方中的每个类型的业务数据至少对应数据编码端中的一个编码算法。例如,编码算法集合中包括编码算法1、编码算法2以及编码算法3,其中,编码算法1用于对类型1的业务数据进行编码处理,编码算法2用于对类型2的业务数据进行编码处理,编码算法3以及编码算法4用于对类型3的业务数据进行编码处理。请求方接收到用户针对业务的编码触发操作,根据该编码触发操作从业务数据中选取与该业务相关的类型1以及类型2的业务数据,将各个业务数据的类型作为对应的业务数据的子定义,并对各个业务数据的子定义进行汇总,得到码定义为类型1以及类型2,请求方根据码数据以及码定义生成编码请求。然后,数据编码端对接收到的编码请求中的码定义进行分析,得到码数据中业务数据的类型包括类型1以及类型2,则码定义匹配的目标编码算法包括编码算法1以及编码算法2。
步骤S230,根据目标编码算法对码数据进行编码处理,以得到具备数据结构的码串数据。
需要说明的是,数据编码端对码数据进行编码处理是指对码数据的进行格式转换,如将包含文字、数字、图像或视频的码数据转换为二进制序列,将转换后的结果作为码串数据,该码串数据具备码定义对应的数据结构。
数据编码端根据码定义对应的目标编码算法对码数据执行编码处理,以得到码串数据。
示例性的,与码定义匹配的目标编码算法包括编码算法1以及编码算法2,根据编码算法1对码数据进行编码处理得到编码算法1对应的编码序列,根据编码算法2对码数据进行编码处理得到编码算法2对应的编码序列,然后对编码算法1对应的编码序列以及编码算法2对应的编码序列进行汇总,得到码串数据。
在一些实施方式中,请参阅图4,图4为本申请提供的对码数据进行编码处理的示意图。如图4所示,请求方将码数据和码定义发送给数据编码端,数据编码端调用编码组件接口,并将码数据和码定义传递给编码组件接口,编码组件根据传入的码定义从编码算法集合中选择对应的目标编码算法,并基于目标编码算法对码数据进行编码处理得到码串数据。
本申请实施例中,通过在数据编码端中集中存储编码算法,根据每个业务对应的码定义匹配对应的编码算法进行编码处理,进而使请求方只需对每个业务进行码定义的获取即可,不用在请求方开发编码代码,且通过数据编码端对请求方的编码请求进行集中处理,可以对编码代码进行复用,降低了开发成本。当请求方需要对某业务进行编码方式的修改时,如需要修改编码处理的结果包含的字段数量、字段类型、字段长度等信息时,只需修改码定义即可,降低了维护成本,便于各个业务的编码需求的更新。
请参阅图5,图5是根据另一示例性实施例示出的一种数据编码方法的流程图。如图5所示,在一示例性的实施例中,码定义包括多个定义字段;步骤S220中从编码算法集合中选取与码定义匹配的目标编码算法的过程,可以包括如下步骤:
步骤S221,确定码定义中的每个定义字段对应的字段标识信息。
可选的,在请求方获取码定义时,不同的业务数据对应不同的定义字段,定义字段的字段标识信息用于唯一表示该定义字段对应的业务数据的属性信息,如业务数据的类型、业务数据的来源、请求方接收业务数据的时间等信息。当码数据中包含有多个业务数据时,码定义包括多个定义字段。
例如,编码请求中的码数据codeParamMap包括多个业务数据codeParam,码定义codeFieldList包括多个定义字段codeField。请求方根据codeParam的属性信息对各个codeParam进行聚类,根据聚类结果确定每个codeParam对应的codeField,进而得到codeFieldList。如将同一类型的codeParam划分为一类,不同类型的codeParam对应不同的codeField,各个codeField对应的字段标识信息为codeParam的类型信息。
步骤S222,根据字段标识信息查询编码算法集合,得到每个定义字段对应的目标编码算法。
本申请实施例中,数据编码端存储有编码算法映射表,该编码算法映射表用于存储字段标识信息与编码算法标识之间的关联关系,通过编码算法映射表获取字段标识信息对应的编码算法标识,进而根据编码算法标识查询编码算法集合,得到每个定义字段对应的目标编码算法。
可以理解的是,一个字段标识信息可以对应一个目标编码算法,也可以对应多个目标编码算法,本申请对此不做具体限制。
示例性的,数据编码端部署有算法查询函数codeField.fieldRule,调用该算法查询函数,并将每个定义字段的字段标识信息作为输入参数传递给该算法查询函数,以得到该算法查询函数输出的编码算法标识,进而调用该编码算法标识对应的编码算法代码,即得到目标编码算法对应的代码。
在一些实施方式中,根据目标编码算法对码数据进行编码处理,以得到具备数据结构的码串数据,包括:根据每个定义字段对应的目标编码算法对码数据进行编码,得到每个定义字段对应的编码字段数值;汇总每个编码字段数值得到码串数据;根据码串数据生成编码请求对应的编码响应。
得到每个定义字段对应的目标编码算法的代码后,将码数据作为输入参数传递给该目标编码算法对应的代码,使得目标编码算法对应的代码对码数据进行编码处理,得到每个定义字段对应的编码字段数值,然后对每个编码字段数值进行汇总得到码串数据,并根据码串数据生成编码请求对应的编码响应。
可选的,可以是将编码响应直接反馈给编码请求的请求方;也可以是请求方发起的编码请求中携带有待反馈端的信息,数据编码端根据待反馈端的信息将编码响应反馈给该待反馈端。
可选的,对每个编码字段数值进行汇总可以是对每个编码字段数值进行拼接,例如,根据码定义中包含的数据结构对每个编码字段数值进行拼接,以得到具备该数据结构的码串数据。
在一些实施方式中,根据每个定义字段对应的目标编码算法对码数据进行编码,得到每个定义字段对应的编码字段数值,包括:遍历码定义中的每个定义字段,根据当前遍历的定义字段对应的目标编码算法对码数据进行编码,得到当前遍历的定义字段对应的编码字段数值;汇总每个编码字段数值得到码串数据,包括:将当前遍历的定义字段对应的编码字段数值添加至预输出集合中;若码定义中的每个定义字段均被遍历,则拼接预输出集合中的每个编码字段数值得到码串数据。
示例性的,请参阅图6,图6为获取码串数据的示意图。如图6所示,数据编码端中的编码组件的输入参数包括码数据codeParamMap以及码定义codeFieldList,该codeParamMap包括多个业务数据codeParam,codeFieldList包括多个定义字段codeField。然后,定义预输出集合fieldValueList,该fieldValueList用于存放每个codeField对应的编码字段数值fieldValue。进一步的,编码组件遍历codeFieldList中的每个codeField,判断该codeFieldList中是否还存在codeField。
若存在,则通过将codeField作为输入参数调用算法查询函数codeField.fieldRule,得到该codeField对应的编码算法标识,进而调用该编码算法标识对应的编码算法代码,即得到目标编码算法对应的代码。例如,得到该codeField对应的编码算法标识为R1时,调用该编码算法标识对应的编码算法代码为PrefixFieldRule函数,该PrefixFieldRule函数用于判断为codeParamMap中的idxValue不为空时,向fieldValueList中添加idxValue的值;当得到该codeField对应的编码算法标识为R2时,调用该编码算法标识对应的编码算法代码为ConstantFieldRule函数,该ConstantFieldRule函数用于向fieldValueList中添加预设的常量值;当得到该codeField对应的编码算法标识为R3时,调用该编码算法标识对应的编码算法代码为DynamicValueFieldRule函数,该DynamicValueFieldRule函数用于从codeParamMap中获取指定字段的数值,并向fieldValueList中添加该指定字段的数值;当得到该codeField对应的编码算法标识为R4以及R5时,调用该编码算法标识对应的编码算法代码为LenfthFlagFieldRule函数中的DynamicLenfthValueFieldRule函数,该DynamicLenfthValueFieldRule函数用于从codeParamMap中获取指定字段的数值以及获取该数值的长度,并向fieldValueList中添加该指定字段的数值以及指定字段的长度。
若不存在,即表明码定义中的每个定义字段均被遍历,则拼接fieldValueList中的每个编码字段数值得到码串数据。
在一些实施方式中,在根据目标编码算法对码数据进行编码处理,以得到具备数据结构的码串数据之后,还包括:将码定义的标识和编码算法集合的版本参数添加至码串数据中,得到编码结果;根据编码结果生成编码请求对应的编码响应。
需要说明的是,码定义的标识用于唯一标识该码定义,编码算法集合的版本参数用于表征编码算法集合的版本信息。
码定义的标识由发送编码请求的请求方生成,该请求方存储有码定义的标识与码定义之间的关联关系,即只有该请求方可以根据码定义的标识查询得到正确的码定义,进而才能按照正确的码定义对码串数据进行正确解码,提高了数据的安全性。
可以理解的是,对码串数据进行解码时需要采用对该码串数据进行编码的编码算法对应的解码算法,而由于数据编码端在反馈码串数据至接收到该码串数据对应的解码请求之间,可能存在编码算法的更新。因此,数据编码端检测到编码算法集合进行更新后,生成更新后的编码算法集合的版本信息,并对更新前的编码算法集合以及编码算法集合的版本信息进行关联保存,以保证后续能够对码串数据进行正确解码。
在一些实施方式中,数据编码端根据码串数据生成编码响应之前,还包括对码串数据进行加密处理,该加密处理采用的加密方法包括但不限于对称加密方法、非对称加密方法、散列加密方法等。
请参阅图7,图7是根据另一示例性实施例示出的一种数据解码方法的流程图。该数据解码方法可以应用于图1所示的实施环境,并由该实施环境中的数据解码端具体执行。应理解的是,该方法也可以适用于其它的示例性实施环境,并由其它实施环境中的设备具体执行,本实施例不对该方法所适用的实施环境进行限制。
如图7所示,在一示例性的实施例中,数据解码方法至少包括步骤S710至步骤S730,详细介绍如下:
步骤S710,接收解码请求,解码请求中携带有待解码的码串数据。
数据解码端在接收到请求方发起的解码请求后,调用解码组件接口,并将该解码请求中的待解码的码串数据传递至解码组件接口,以使解码组件针对待解码的码串数据执行对应的解码处理。其中,解码组件是指对解码算法进行封装后的代码组件,解码算法是指执行解码处理时所使用的算法。
步骤S720,从解码算法集合中选取与待解码的码串数据对应的码定义匹配的目标解码算法,码定义用于指示待解码的码串数据具备的数据结构。
需要说明的是,解码组件中含有解码算法集合,解码算法集合中包括多个解码算法。
数据解码端根据待解码的码串数据从解码算法集合中进行解码算法的选择,并将选择的解码算法作为目标解码算法。其中,目标解码算法可以是一个,也可以是多个,本申请对此不做具体限制。
步骤S730,根据目标解码算法对待解码的码串数据进行解码处理,以得到具备数据结构的码数据。
数据解码端根据目标解码算法对待解码的码串数据执行解码处理,以得到码数据。
示例性的,与待解码的码串数据匹配的目标解码算法包括解码算法1以及解码算法2,根据解码算法1对待解码的码串数据进行解码处理得到解码算法1对应的解码序列,根据解码算法2对待解码的码串数据进行解码处理得到解码算法2对应的解码序列,然后对解码算法1对应的解码序列以及解码算法2对应的解码序列进行汇总,得到码数据。
本申请实施例中,通过在数据解码端中集中存储解码算法,根据待解码的码串数据匹配对应的解码算法进行解码处理,进而通过数据解码端对请求方的解码请求进行集中处理,可以对解码代码进行复用,降低了开发成本。
在一些实施方式中,数据解码端接收到的解码请求中的码串数据是加密后的码串数据,数据解码端对解码请求中的码串数据进行解码之前,还包括对该码串数据进行解密处理。例如,可以是数据解码端根据码串数据对应的码串数据标识查询解密算法,进而根据该解密算法对码串数据进行解密,再对解密后的码串数据进行解码处理。
在一些实施方式中,在从解码算法集合中选取与待解码的码串数据对应的码定义匹配的目标解码算法之前,还包括:根据待解码的码串数据中包含的码定义的标识,生成码定义获取请求;向待解码的码串数据对应的编码请求方和解码请求方中的至少一方发送码定义获取请求,以获取编码请求方和解码请求方中的至少一方反馈的待解码的码串数据对应的码定义。
请参阅图8,图8为本申请提供的对待解码的码串数据进行解码处理的示意图。如图8所示,请求方将待解码的码串数据发送给数据解码端,数据解码端调用解码组件接口,并将待解码的码串数据传递给解码组件接口,解码组件对传入的待解码的码串数据进行解析,得到该待解码的码串数据中的码定义的标识,并根据码定义的标识向编码请求方和解码请求方中的至少一方发起码定义获取请求,进而编码请求方和解码请求方中的至少一方根据码定义获取请求调用码定义查询接口,以向解码组件反馈待解码的码串数据对应的码定义。然后根据该码定义从解码算法集合中选择对应的目标解码算法,并基于目标解码算法对待解码的码串数据进行解码处理得到解码后的码数据。
在一些实施方式中,编码请求方和解码请求方中的至少一方根据码定义获取请求调用码定义查询接口,以向解码组件反馈待解码的码串数据对应的码定义之前,还可以对数据解码端进行身份校验,以在校验通过后向该数据解码端反馈待解码的码串数据对应的码定义,进而保证数据的安全性。
在一些实施方式中,待解码的码串数据对应的码定义包括多个定义字段;从解码算法集合中选取与待解码的码串数据对应的码定义匹配的目标解码算法,包括:确定每个定义字段对应的字段标识信息;根据字段标识信息查询解码算法集合,得到每个定义字段对应的目标解码算法。
例如,待解码的码串数据对应的码定义codeFieldList包括多个定义字段codeField,根据每个codeField的字段标识信息查询解码算法集合,得到每个定义字段对应的目标解码算法。
本申请实施例中,数据解码端存储有解码算法映射表,该解码算法映射表用于存储字段标识信息与解码算法标识之间的关联关系,通过解码算法映射表获取字段标识信息对应的解码算法标识,进而根据解码算法标识查询解码算法集合,得到每个定义字段对应的目标解码算法。
可以理解的是,一个字段标识信息可以对应一个目标解码算法,也可以对应多个目标解码算法,本申请对此不做具体限制。
示例性的,数据解码端部署有算法查询函数codeField.fieldRule,调用该算法查询函数,并将每个定义字段的字段标识信息作为输入参数传递给该算法查询函数,以得到该算法查询函数输出的解码算法标识,进而调用该解码算法标识对应的解码算法代码,即得到目标解码算法对应的代码。
在一些实施方式中,解码算法集合的数量为多个;根据字段标识信息查询解码算法集合,得到每个定义字段对应的目标解码算法,包括:提取待解码的码串数据中包含的编码算法集合的版本参数;从多个解码算法集合中选取与版本参数匹配的解码算法集合;根据字段标识信息查询与版本参数匹配的解码算法集合,得到每个定义字段对应的目标解码算法。
本申请实施例中,待解码的码串数据中包含有编码算法集合的版本参数,根据编码算法集合的版本参数从多个解码算法集合中选取解码过程对应的解码算法集合,以保证后续能够对码串数据进行正确解码。
在一些实施方式中,根据目标解码算法对待解码的码串数据进行解码处理,包括:根据每个定义字段对应的目标解码算法对待解码的码串数据进行解码,得到每个定义字段对应的解码字段数值;汇总每个解码字段数值得到解码数据。
得到每个定义字段对应的目标解码算法的代码后,将待解码的码串数据作为输入参数传递给该目标解码算法对应的代码,使得目标解码算法对应的代码对码串数据进行解码处理,得到每个定义字段对应的解码字段数值,然后对每个解码字段数值进行汇总得到待解码的码串数据对应的码数据,即得到解码数据,并根据解码数据生成解码请求对应的解码响应。
可选的,可以是将解码响应直接反馈给解码请求的请求方;也可以是请求方发起的解码请求中携带有待反馈端的信息,数据解码端根据待反馈端的信息将解码响应反馈给该待反馈端。
可选的,对每个解码字段数值进行汇总可以是对每个解码字段数值进行拼接,例如,根据码定义中包含的数据结构对每个解码字段数值进行拼接,以得到待解码的码串数据对应的码数据。
在一些实施方式中,根据每个定义字段对应的目标解码算法对码串数据进行解码,得到每个定义字段对应的解码字段数值,包括:遍历码定义中的每个定义字段,根据当前遍历的定义字段对应的目标解码算法对码串数据进行解码,得到当前遍历的定义字段对应的解码字段数值;汇总每个解码字段数值得到解码数据,包括:将当前遍历的定义字段对应的解码字段数值添加至预输出集合中;若码定义中的每个定义字段均被遍历,则拼接预输出集合中的每个解码字段数值得到解码数据。
示例性的,请参阅图9,图9为获取解码数据的示意图。如图9所示,数据解码端中的解码组件的输入参数包括码串数据codeContent,定义预输出集合codeParamMap,该codeParamMap用于存放解码出的解码字段数值codeParam。然后,解析codeContent得到编码算法集合的版本参数codeDefVersion以及码定义标识codeDefld,并通过回调查询函数,得到码定义codeFieldList,该codeFieldList包括多个定义字段codeField。
进一步的,解码组件遍历codeFieldList中的每个codeField,判断该codeFieldList中是否还存在codeField。
若存在,则通过将codeField作为输入参数调用算法查询函数codeField.fieldRule,得到该codeField对应的解码算法标识,进而调用该解码算法标识对应的解码算法代码,即得到目标解码算法对应的代码。例如,得到该codeField对应的解码算法标识为R1时,调用该解码算法标识对应的解码算法代码为PrefixFieldRule函数,该PrefixFieldRule函数用于判断为splitCode不为空时,用splitCode将codeContent切分成(arr[0],arr[1]),codeContent=arr[1];当得到该codeField对应的解码算法标识为R2时,调用该解码算法标识对应的解码算法代码为ConstantFieldRule函数,该ConstantFieldRule函数用于按照R2中预设的长度截取codeContent里的内容,并向codeParamMap中添加该内容;当得到该codeField对应的解码算法标识为R3时,调用该解码算法标识对应的解码算法代码为DynamicValueFieldRule函数,该DynamicValueFieldRule函数用于按照R3中预设的长度截取codeContent里的内容,并向codeParamMap中添加该内容;当得到该codeField对应的解码算法标识为R4以及R5时,调用该解码算法标识对应的解码算法代码为LenfthFlagFieldRule函数中的DynamicLenfthValueFieldRule函数,LenfthFlagFieldRule函数用于根据R4中预设的值截取codeContent得到R5的值,DynamicLenfthValueFieldRule函数用于得到R5的值的fieldCode,然后并向codeParamMap中添加R5的值以及fieldCode。
若不存在,即表明码定义中的每个定义字段均被遍历,则拼接codeParamMap中的每个解码字段数值得到解码数据,并根据解码数据生成解码请求对应的解码响应。
以下结合应用场景对本申请实施例的数据编码及解码方法进行详细说明。
以针对用户的数字身份信息的图形码的生成场景为例,对编码过程进行说明:
请求方接收到用户的数字身份信息图形码生成请求,根据该数字身份信息图形码生成请求获取该用户的身份信息得到码数据,并获取该用户的身份信息对应的数据结构得到码定义,根据码数据和码定义向数据编码端发起编码请求。数据编码端接收到编码请求,将编码请求中的码数据和码定义传递给编码组件接口,以使编码组件根据码定义确定目标编码算法,进而根据目标编码算法对码数据进行编码处理,得到码串数据。然后,数据编码终端将码串数据转换为二维码序列,以根据二维码序列生成二维码图形码。
需要说明的是,在本申请的具体实施方式中,涉及到用户的身份信息等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
二维码(2-dimensional bar code)在代码编制上利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。在许多种类的二维条码中,常用的码制有:Data Matrix,MaxiCode,Aztec,QR Code,Vericode,PDF417,Ultracode,Code 49,Code 16K等。
以QR Code编码为例,其生成二维码图片的过程为:先将码串数据中的每一个字符(数字,字母,符号等)转成二进制序列(例如:0101的序列),然后将每个字符的二进制序列连接,并通过添加起始位和结束位,以及补全二维码序列长度得到二维码序列,然后根据二维码序列生成图片,其中序列中为1的位在图片中为黑色,序列中为0的位在图片中为白色。例如,“ABCDE123”的字符串则将被编码成二维码序列:00100000 01000001 1100110101000101 00101001 11011100 00101110 10000000 11101100。
其中,可以根据生成数字身份信息的图形码的业务场景的不同,对各个业务配置不同的图形码生成策略。
例如,请求方接收到用户针对虚拟资源转移业务的数字身份信息图形码生成请求时,根据该数字身份信息图形码生成请求获取该用户的身份信息中的业务数据的类型包括用户的用户信息、用户选择进行虚拟资源转移的账户信息、接收虚拟资源的账户信息等,根据各个业务数据的类型得到码定义,并根据各个类型的业务数据的具体数据内容得到码数据。进一步的,数据编码端根据该码定义匹配到的目标编码算法包括:用户的用户信息对应的目标编码算法为用户信息编码算法;用户选择进行虚拟资源转移的账户信息对应的目标编码算法为转出信息编码算法;接收虚拟资源的账户信息对应的目标编码算法为转入信息编码算法。然后,根据用户信息编码算法、转出信息编码算法以及转入信息编码算法对该码数据执行编码处理,得到码串数据。
例如,请求方接收到用户针对风险查询业务的数字身份信息图形码生成请求时,根据该数字身份信息图形码生成请求获取该用户的身份信息中的业务数据的类型包括用户的用户信息、用户预设时间段内的行程信息、用户预设时间段内身体健康情况等,根据各个业务数据的类型得到码定义,并根据各个类型的业务数据的具体数据内容得到码数据。进一步的,数据编码端根据该码定义匹配到的目标编码算法包括:用户的用户信息对应的目标编码算法为用户信息编码算法;用户预设时间段内的行程信息对应的目标编码算法为行程信息编码算法;用户预设时间段内身体健康情况对应的目标编码算法为健康信息编码算法。然后,根据用户信息编码算法、行程信息编码算法以及健康信息编码算法对该码数据执行编码处理,得到码串数据。
即在数据编码端通过对各个类型的业务数据均设定对应的编码算法,进而使可以根据码数据包含的业务数据的不同,灵活的匹配各个码数据对应的目标编码算法,使得数据编码端可以对多种业务的编码请求进行适配,且通过对编码算法的代码进行复用,减少了数据编码端的代码量,即减小了代码的开发成本以及维护成本,使各个业务的编码过程更加标准化。同时,将编码过程中的码定义以及编码算法进行拆分,使得请求方在进行编码需求更新时,只需更新码定义即可,不用对编码算法的代码部分进行修改,提高了编码过程的更新效率。
以针对用户的数字身份信息的图形码的生成场景为例,对解码过程进行说明:
请求方接收到用户的图形码获取请求,根据该图形码获取请求获取待解码的图形码,例如请求方接收用户执行的图形码扫描操作,打开请求方的图像获取装置,当检测到图像获取装置的图像获取区域中存在图形码时,将该图像获取区域中的图形码作为待解码的图形码。然后,将该待解码的图形码发送给数据解码端,数据解码端将该待解码的图形码中的二维码序列转换为码串数据,然后将码串数据传递给解码组件接口,根据码串数据的标识向请求方查询该码串数据对应的码定义,以使解码组件根据码定义确定目标解码算法,进而根据目标解码算法对码串数据进行解码处理,得到包含数字身份信息的码数据。
其中,可以根据生成数字身份信息的图形码的业务场景的不同,对各个业务配置不同的图形码解码策略。
例如,请求方接收到的待解码的图形码为虚拟资源转移业务的图形码时,将该待解码的图形码发送给数据解码端,数据解码端将该待解码的图形码中的二维码序列转换为码串数据,然后将码串数据传递给解码组件接口,根据码串数据的标识向请求方查询该码串数据对应的码定义为用户的用户信息、用户选择进行虚拟资源转移的账户信息、接收虚拟资源的账户信息等。进一步的,数据解码端根据该码定义匹配到的目标解码算法包括:用户的用户信息对应的目标解码算法为用户信息解码算法;用户选择进行虚拟资源转移的账户信息对应的目标解码算法为转出信息解码算法;接收虚拟资源的账户信息对应的目标解码算法为转入信息解码算法。然后,根据用户信息解码算法、转出信息解码算法以及转入信息解码算法对该码数据执行解码处理,得到码数据。
例如,请求方接收到的待解码的图形码为风险查询业务的图形码时,将该待解码的图形码发送给数据解码端,数据解码端将该待解码的图形码中的二维码序列转换为码串数据,然后将码串数据传递给解码组件接口,根据码串数据的标识向请求方查询该码串数据对应的码定义为用户的用户信息、用户预设时间段内的行程信息、用户预设时间段内身体健康情况等。进一步的,数据解码端根据该码定义匹配到的目标解码算法包括:用户的用户信息对应的目标解码算法为用户信息解码算法;用户预设时间段内的行程信息对应的目标解码算法为行程信息解码算法;用户预设时间段内身体健康情况对应的目标解码算法为健康信息解码算法。然后,根据用户信息解码算法、行程信息解码算法以及健康信息解码算法对该码数据执行解码处理,得到码数据。
即在数据解码端通过对各个类型的业务数据均设定对应的解码算法,进而使可以根据码串数据对应的码定义包含的业务数据的不同,灵活的匹配各个码串数据对应的目标解码算法,使得数据解码端可以对多种业务的解码请求进行适配,且通过对解码算法的代码进行复用,减少了数据解码端的代码量,即减小了代码的开发成本以及维护成本,使各个业务的解码过程更加标准化。同时,将解码过程中的码定义以及解码算法进行拆分,使得请求方在进行解码需求更新时,只需更新码定义即可,不用对解码算法的代码部分进行修改,提高了解码过程的更新效率。
图10是本申请的一示例性实施例示出的数据编码装置1000的框图。该数据编码装置1000可以应用于图1所示的实施环境。该数据编码装置1000也可以适用于其它的示例性实施环境,并具体配置在其它设备中,本实施例不对该装置所适用的实施环境进行限制。
如图10所示,该示例性的数据编码装置1000包括:编码请求接收模块1010、目标编码算法获取模块1020和编码处理模块1030。具体的:
编码请求接收模块1010,配置为接收编码请求,编码请求中携带有码数据和码定义,码定义用于指示对码数据进行编码处理所采用的数据结构。
目标编码算法获取模块1020,配置为从编码算法集合中选取与码定义匹配的目标编码算法。
编码处理模块1030,配置为根据目标编码算法对码数据进行编码处理,以得到具备数据结构的码串数据。
在该示例性的数据编码装置中,通过在数据编码端中集中存储编码算法,根据每个业务对应的码定义匹配对应的编码算法进行编码处理,进而使请求方只需对每个业务进行码定义的获取即可,不用在请求方开发编码代码,且通过数据编码端对请求方的编码请求进行集中处理,可以对编码代码进行复用,降低了开发成本。当请求方需要对某业务进行编码方式的修改时,如需要修改编码处理的结果包含的字段数量、字段类型、字段长度等信息时,只需修改码定义即可,降低了维护成本,便于各个业务的编码需求的更新。
在上述示例性的实施例基础上,码定义包括多个定义字段,目标编码算法获取模块1020包括编码字段标识信息确定单元、目标编码算法查询单元。具体的:
编码字段标识信息确定单元,配置为确定码定义中的每个定义字段对应的字段标识信息;
目标编码算法查询单元,配置为根据字段标识信息查询编码算法集合,得到每个定义字段对应的目标编码算法。
在该示例性的数据编码装置中,通过确定码定义中的每个定义字段对应的字段标识信息,根据字段标识信息查询编码算法集合,得到每个定义字段对应的目标编码算法,以从字段的维度上设定编码算法,进而使可以根据码数据包含的数据的不同,灵活的匹配各个码数据对应的目标编码算法,使得数据编码端可以对不同的编码请求进行适配,且通过对编码算法的代码进行复用,减少了数据编码端的代码量,即减小了代码的开发成本以及维护成本,使编码过程更加标准化。
在上述示例性的实施例基础上,编码处理模块1030包括编码字段数值确定单元、编码汇总单元和编码响应生成单元。具体的:
编码字段数值确定单元,配置为根据每个定义字段对应的目标编码算法对码数据进行编码,得到每个定义字段对应的编码字段数值;
编码汇总单元,配置为汇总每个编码字段数值得到码串数据;
编码响应生成单元,配置为根据码串数据生成编码请求对应的编码响应。
在该示例性的数据编码装置中,通过根据每个定义字段对应的目标编码算法对码数据进行编码,得到每个定义字段对应的编码字段数值,然后汇总每个编码字段数值得到码串数据,以对每个定义字段分别进行编码处理,使得数据编码端对不同的编码请求进行适配,保证编码处理结果的准确性。
在上述示例性的实施例基础上,编码字段数值确定单元包括遍历单元,编码汇总单元包括预输出集合数值添加单元和预输出集合数值拼接单元。具体的:
遍历单元,配置为遍历码定义中的每个定义字段,根据当前遍历的定义字段对应的目标编码算法对码数据进行编码,得到当前遍历的定义字段对应的编码字段数值;
预输出集合数值添加单元,配置为将当前遍历的定义字段对应的编码字段数值添加至预输出集合中;
预输出集合数值拼接单元,配置为若码定义中的每个定义字段均被遍历,则拼接预输出集合中的每个编码字段数值得到码串数据。
在该示例性的数据编码装置中,通过遍历码定义中的每个定义字段,根据当前遍历的定义字段对应的目标编码算法对码数据进行编码,得到当前遍历的定义字段对应的编码字段数值,然后将当前遍历的定义字段对应的编码字段数值添加至预输出集合中,当码定义中的每个定义字段均被遍历,则拼接预输出集合中的每个编码字段数值得到码串数据,使得编码过程更加标准化。
在上述示例性的实施例基础上,数据编码装置1000还包括附加信息添加单元、编码响应生成单元。具体的:
附加信息添加单元,配置为将码定义的标识和编码算法集合的版本参数添加至码串数据中,得到编码结果;
编码响应生成单元,配置为根据编码结果生成编码请求对应的编码响应。
在该示例性的数据处理装置中,通过将码定义的标识和编码算法集合的版本参数添加至码串数据中得到编码结果,然后根据编码结果生成编码请求对应的编码响应,进而在后续对编码结果中的码串数据执行解码操作时,可以获知码定义的标识和编码算法集合的版本参数,以保证能对码串数据进行正确解码。
图11是本申请的一示例性实施例示出的数据解码装置1100的框图。该数据解码装置可以应用于图1所示的实施环境。该数据解码装置1100也可以适用于其它的示例性实施环境,并具体配置在其它设备中,本实施例不对该装置所适用的实施环境进行限制。
如图11所示,该示例性的数据编码装置1100包括:解码请求接收模块1110、目标解码算法获取模块1120和解码处理模块1130。具体的:
解码请求接收模块1110,配置为接收解码请求,解码请求中携带有待解码的码串数据;
目标解码算法获取模块1120,配置为从解码算法集合中选取与待解码的码串数据对应的码定义匹配的目标解码算法,码定义用于指示待解码的码串数据具备的数据结构;
解码处理模块1130,配置为根据目标解码算法对待解码的码串数据进行解码处理,以得到具备数据结构的码数据。
在该示例性的数据解码装置中,通过在数据解码端通过对各个类型的业务数据均设定对应的解码算法,进而使可以根据码串数据对应的码定义包含的业务数据的不同,灵活的匹配各个码串数据对应的目标解码算法,使得数据解码端可以对多种业务的解码请求进行适配,且通过对解码算法的代码进行复用,减少了数据解码端的代码量,即减小了代码的开发成本以及维护成本,使各个业务的解码过程更加标准化。同时,将解码过程中的码定义以及解码算法进行拆分,使得请求方在进行解码需求更新时,只需更新码定义即可,不用对解码算法的代码部分进行修改,提高了解码过程的更新效率。
在上述示例性的实施例基础上,数据解码装置1100还包括请求生成单元、获取单元。具体的:
请求生成单元,配置为根据待解码的码串数据中包含的码定义的标识,生成码定义获取请求;
获取单元,配置为向待解码的码串数据对应的编码请求方和解码请求方中的至少一方发送码定义获取请求,以获取编码请求方和解码请求方中的至少一方反馈的待解码的码串数据对应的码定义。
在该示例性的数据解码装置中,通过向待解码的码串数据对应的编码请求方和解码请求方中的至少一方发送码定义获取请求,以获取编码请求方和解码请求方中的至少一方反馈的待解码的码串数据对应的码定义,进而获取码串数据对应的编码过程中使用的码定义,保证对码串数据进行正确的解码,且只有可信任的请求方中存在正确的码定义,以及可信任的请求方只向可信任的数据解码端发送正确的码定义,保证了数据的安全性。
在上述示例性的实施例基础上,待解码的码串数据对应的码定义包括多个定义字段;目标解码算法获取模块包括解码字段标识信息确定单元、目标解码算法查询单元。具体的:
解码字段标识信息确定单元,配置为确定每个定义字段对应的字段标识信息;
目标解码算法查询单元,配置为根据字段标识信息查询解码算法集合,得到每个定义字段对应的目标解码算法。
在该示例性的数据解码装置中,通过确定每个定义字段对应的字段标识信息,然后根据字段标识信息查询解码算法集合,得到每个定义字段对应的目标解码算法,以从字段的维度上设定解码算法,进而使可以根据码定义对应的字段的不同,灵活的匹配各个码定义对应的目标解码算法,使得数据解码端可以对不同的解码请求进行适配,且通过对解码算法的代码进行复用,减少了数据解码端的代码量,即减小了代码的开发成本以及维护成本,使解码过程更加标准化。
在上述示例性的实施例基础上,解码算法集合的数量为多个;目标解码算法查询单元包括附加信息提取单元、集合版本匹配单元、目标解码算法版确定单元。具体的:
附加信息提取单元,配置为提取待解码的码串数据中包含的编码算法集合的版本参数;
集合版本匹配单元,配置为从多个解码算法集合中选取与版本参数匹配的解码算法集合;
目标解码算法版确定单元,配置为根据字段标识信息查询与版本参数匹配的解码算法集合,得到每个定义字段对应的目标解码算法。
在该示例性的数据解码装置中,通过提取待解码的码串数据中包含的编码算法集合的版本参数,然后从多个解码算法集合中选取与版本参数匹配的解码算法集合,以根据字段标识信息查询与版本参数匹配的解码算法集合,得到每个定义字段对应的目标解码算法,保证在数据解码端进行编码算法的更新后,对于采用更新前的编码算法得到的码串数据能够正确的解码。
在上述示例性的实施例基础上,解码处理模块包括解码字段数值确定单元、解码汇总单元。具体的:
解码字段数值确定单元,配置为根据每个定义字段对应的目标解码算法对待解码的码串数据进行解码,得到每个定义字段对应的解码字段数值;
解码汇总单元,配置为汇总每个解码字段数值得到解码数据。
在该示例性的数据解码装置中,通过根据每个定义字段对应的目标解码算法对待解码的码串数据进行解码,得到每个定义字段对应的解码字段数值,然后汇总每个解码字段数值得到解码数据,以对每个定义字段分别进行解码处理,使得数据解码端对不同的解码请求进行适配,保证解码处理结果的准确性。
需要说明的是,上述实施例所提供的数据解码装置与上述实施例所提供的数据解码方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。上述实施例所提供的数据解码装置在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能,本处也不对此进行限制。
本申请的实施例还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现上述各个实施例中提供的数据编码及解码方法。
图12示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。需要说明的是,图12示出的电子设备的计算机系统1200仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图12所示,计算机系统1200包括中央处理单元(Central Processing Unit,CPU)1201,其可以根据存储在只读存储器(Read-Only Memory,ROM)1202中的程序或者从储存部分1208加载到随机访问存储器(Random Access Memory,RAM)1203中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 1203中,还存储有系统操作所需的各种程序和数据。CPU 1201、ROM 1202以及RAM 1203通过总线1204彼此相连。输入/输出(Input/Output,I/O)接口1205也连接至总线1204。
以下部件连接至I/O接口1205:包括键盘、鼠标等的输入部分1206;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1207;包括硬盘等的储存部分1208;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信处理。驱动器1210也根据需要连接至I/O接口1205。可拆卸介质1211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1210上,以便于从其上读出的计算机程序根据需要被安装入储存部分1208。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1209从网络上被下载和安装,和/或从可拆卸介质1211被安装。在该计算机程序被中央处理单元(CPU)1201执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前所述的数据编码及解码方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的数据编码及解码方法。
上述内容,仅为本申请的较佳示例性实施例,并非用于限制本申请的实施方案,本领域普通技术人员根据本申请的主要构思和精神,可以十分方便地进行相应的变通或修改,故本申请的保护范围应以权利要求书所要求的保护范围为准。
Claims (15)
1.一种数据编码方法,其特征在于,所述方法包括:
接收编码请求,所述编码请求中携带有码数据和码定义,所述码定义用于指示对码数据进行编码处理所采用的数据结构;
从编码算法集合中选取与所述码定义匹配的目标编码算法;
根据所述目标编码算法对所述码数据进行编码处理,以得到具备所述数据结构的码串数据。
2.根据权利要求1所述的方法,其特征在于,所述码定义包括多个定义字段;所述从编码算法集合中选取与所述码定义匹配的目标编码算法,包括:
确定所述码定义中的每个定义字段对应的字段标识信息;
根据所述字段标识信息查询编码算法集合,得到所述每个定义字段对应的目标编码算法。
3.根据权利要求2所述的方法,其特征在于,所述根据所述目标编码算法对所述码数据进行编码处理,以得到具备所述数据结构的码串数据,包括:
根据所述每个定义字段对应的目标编码算法对所述码数据进行编码,得到所述每个定义字段对应的编码字段数值;
汇总每个所述编码字段数值得到所述码串数据;
根据所述码串数据生成所述编码请求对应的编码响应。
4.根据权利要求3所述的方法,其特征在于,所述根据所述每个定义字段对应的目标编码算法对所述码数据进行编码,得到所述每个定义字段对应的编码字段数值,包括:
遍历所述码定义中的每个定义字段,根据当前遍历的定义字段对应的目标编码算法对所述码数据进行编码,得到所述当前遍历的定义字段对应的编码字段数值;
所述汇总每个所述编码字段数值得到所述码串数据,包括:
将所述当前遍历的定义字段对应的编码字段数值添加至预输出集合中;
若所述码定义中的每个定义字段均被遍历,则拼接所述预输出集合中的每个编码字段数值得到所述码串数据。
5.根据权利要求3所述的方法,其特征在于,在所述根据所述目标编码算法对所述码数据进行编码处理,以得到具备所述数据结构的码串数据之后,还包括:
将所述码定义的标识和所述编码算法集合的版本参数添加至所述码串数据中,得到编码结果;
根据所述编码结果生成所述编码请求对应的编码响应。
6.一种数据解码方法,其特征在于,所述方法包括:
接收解码请求,所述解码请求中携带有待解码的码串数据;
从解码算法集合中选取与所述待解码的码串数据对应的码定义匹配的目标解码算法,所述码定义用于指示所述待解码的码串数据具备的数据结构;
根据所述目标解码算法对所述待解码的码串数据进行解码处理,以得到具备所述数据结构的码数据。
7.根据权利要求6所述的方法,其特征在于,在所述从解码算法集合中选取与所述待解码的码串数据对应的码定义匹配的目标解码算法之前,还包括:
根据所述待解码的码串数据中包含的码定义的标识,生成码定义获取请求;
向所述待解码的码串数据对应的编码请求方和解码请求方中的至少一方发送所述码定义获取请求,以获取所述编码请求方和解码请求方中的至少一方反馈的所述待解码的码串数据对应的码定义。
8.根据权利要求6所述的方法,其特征在于,所述待解码的码串数据对应的码定义包括多个定义字段;所述从解码算法集合中选取与所述待解码的码串数据对应的码定义匹配的目标解码算法,包括:
确定每个定义字段对应的字段标识信息;
根据所述字段标识信息查询所述解码算法集合,得到所述每个定义字段对应的目标解码算法。
9.根据权利要求8所述的方法,其特征在于,所述解码算法集合的数量为多个;所述根据所述字段标识信息查询所述解码算法集合,得到所述每个定义字段对应的目标解码算法,包括:
提取所述待解码的码串数据中包含的编码算法集合的版本参数;
从多个解码算法集合中选取与所述版本参数匹配的解码算法集合;
根据所述字段标识信息查询所述与所述版本参数匹配的解码算法集合,得到所述每个定义字段对应的目标解码算法。
10.根据权利要求8所述的方法,其特征在于,所述根据所述目标解码算法对所述待解码的码串数据进行解码处理,以得到具备所述数据结构的码数据,包括:
根据所述每个定义字段对应的目标解码算法对所述待解码的码串数据进行解码,得到所述每个定义字段对应的解码字段数值;
汇总每个所述解码字段数值得到解码数据。
11.一种数据编码装置,其特征在于,所述装置包括:
编码请求接收模块,配置为接收编码请求,所述编码请求中携带有码数据和码定义,所述码定义用于指示对码数据进行编码处理所采用的数据结构;
目标编码算法获取模块,配置为从编码算法集合中选取与所述码定义匹配的目标编码算法;
编码处理模块,配置为根据所述目标编码算法对所述码数据进行编码处理,以得到具备所述数据结构的码串数据。
12.一种数据解码装置,其特征在于,所述装置包括:
解码请求接收模块,配置为接收解码请求,所述解码请求中携带有待解码的码串数据;
目标解码算法获取模块,配置为从解码算法集合中选取与所述待解码的码串数据对应的码定义匹配的目标解码算法,所述码定义用于指示所述待解码的码串数据具备的数据结构;
解码处理模块,配置为根据与所述目标解码算法对所述待解码的码串数据进行解码处理,以得到具备所述数据结构的码数据。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至5中任一项所述的数据编码方法或6至10中任一项所述的数据解码方法。
14.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至5中任一项所述的数据编码方法或6至10中任一项所述的数据解码方法。
15.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令在被处理器执行时用于实现如权利要求1至5中任一项所述的数据编码方法或6至10中任一项所述的数据解码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210585327.4A CN117176954A (zh) | 2022-05-26 | 2022-05-26 | 数据编码及解码方法、装置、介质、设备及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210585327.4A CN117176954A (zh) | 2022-05-26 | 2022-05-26 | 数据编码及解码方法、装置、介质、设备及产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117176954A true CN117176954A (zh) | 2023-12-05 |
Family
ID=88939926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210585327.4A Pending CN117176954A (zh) | 2022-05-26 | 2022-05-26 | 数据编码及解码方法、装置、介质、设备及产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117176954A (zh) |
-
2022
- 2022-05-26 CN CN202210585327.4A patent/CN117176954A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111447257B (zh) | 报文转换方法和装置 | |
CN112184367B (zh) | 一种订单处理方法和装置 | |
US10243998B2 (en) | Metadata supporting cyber content sharing and governance and application method thereof | |
CN110839004A (zh) | 访问认证的方法和装置 | |
CN111371702B (zh) | 数据转发的方法、装置、电子设备及存储介质 | |
CN116881881B (zh) | 数据导出方法、装置、电子设备和计算机可读介质 | |
CN110858202A (zh) | 数据库查询语句中where子句的生成方法和生成装置 | |
CN110795741B (zh) | 对数据进行安全性处理的方法和装置 | |
CN108282484B (zh) | 密码获取方法、装置、计算机设备和存储介质 | |
CN113761566A (zh) | 一种数据处理方法和装置 | |
CN109525550B (zh) | 一种数据报文的处理方法、装置以及系统 | |
CN109683942B (zh) | 脚本管理方法、装置、介质及电子设备 | |
CN117176954A (zh) | 数据编码及解码方法、装置、介质、设备及产品 | |
CN115361376B (zh) | 政务文件上传方法、装置、电子设备及存储介质 | |
CN111178010B (zh) | 显示数字签名的方法及系统、数据编辑方法及终端 | |
CN112749353A (zh) | 网页图标的处理方法和装置 | |
CN113779018A (zh) | 一种数据处理方法和装置 | |
CN112416619A (zh) | 一种接口配置方法、设备、终端及存储介质 | |
CN117389769B (zh) | 基于云服务的浏览器端富文本拷贝方法、系统及云平台 | |
CN114390032B (zh) | 一种出口网关请求方法、装置、设备及介质 | |
CN113283215B (zh) | 一种基于utf-32编码的数据混淆方法及装置 | |
CN109376023B (zh) | 用于生成调用信息、发布返回码组的方法和设备 | |
CN118410093B (zh) | 多协议数据集成控制方法及装置、系统、存储介质 | |
CN118138643A (zh) | 处理请求的方法、装置、电子设备和计算机可读介质 | |
CN114091044A (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 |