CN108446319A - 将数据进行二进制序列化的方法和系统 - Google Patents
将数据进行二进制序列化的方法和系统 Download PDFInfo
- Publication number
- CN108446319A CN108446319A CN201810135591.1A CN201810135591A CN108446319A CN 108446319 A CN108446319 A CN 108446319A CN 201810135591 A CN201810135591 A CN 201810135591A CN 108446319 A CN108446319 A CN 108446319A
- Authority
- CN
- China
- Prior art keywords
- data
- block
- data block
- format
- format conversion
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种将数据进行二进制序列化的方法和系统,涉及数据序列化领域。该方法的步骤为:创建数据块的通用序列化格式,将需要进行序列化的业务数据块,作为格式转换数据块;格式转换数据块中不存在子数据块时,按照通用序列化格式,对格式转换数据块进行转换,得到通用序列化数据块;将通用序列化数据块与母数据块中对应的子数据块进行替换,当母数据块中的所有子数据块均替换为通用序列化数据块。本发明能够不重新生成业务数据的情况下,对发生改变后的业务数据进行序列化;本发明的工作效率较高,便于人们使用。
Description
技术领域
本发明涉及数据序列化领域,具体涉及一种将数据进行二进制序列化的方法和系统。
背景技术
在电信业务的管理过程中,需要将业务数据进行序列化,以实现业务数据的持久化存储或网络间传输。业务数据发生改变时(例如增减数据中的字段),由于改变后的数据格式与原数据格式不同,因此对发生改变的业务数据进行序列化时,会因无法识别格式不同的业务数据而无法进行。此时只有将整个业务数据采用统一个格式重新生成,才能进行序列化,而重新生成整个业务数据的工作效率较低,不便于人们使用。
发明内容
针对现有技术中存在的缺陷,本发明解决的技术问题为:如何在不重新生成业务数据的情况下,对发生改变后的业务数据进行序列化;本发明的工作效率较高,便于人们使用。
为达到以上目的,本发明提供的将数据进行二进制序列化的方法,包括以下步骤:
S1:创建数据块的通用序列化格式,转到S2;
S2:将需要进行序列化的业务数据块,作为格式转换数据块,转到S3;
S3:判断格式转换数据块中是否存在子数据块,若是,转到S4;否则转到S5;
S4:遍历格式转换数据块中的所有子数据块,将遍历到的子数据块作为格式转换数据块后,继续执行S3;
S5:按照S1中的通用序列化格式,对格式转换数据块进行转换,得到通用序列化数据块,转到S6;
S6:判断是否存在通用序列化数据块的母数据块,若是,转到S7,否则确认业务数据块的格式转换完毕;
S7:将通用序列化数据块与母数据块中对应的子数据块进行替换,当母数据块中的所有子数据块均替换为通用序列化数据块后,将当前母数据块作为通用序列化数据块,继续执行S6。
在上述技术方案的基础上,S1中所述通用序列化格式包括数据块长度、字段个数、字段掩码和数据块中的数据。
在上述技术方案的基础上,所述数据块长度位于数据块的表头,字段个数占一个字节,字段掩码表示对应字段是否有效。
在上述技术方案的基础上,S5的流程包括:获取格式转换数据块的数据块长度、字段个数、字段掩码和数据块中的数据,将数据块长度写入数据块头部,在数据块长度后依次写入字段个数、字段掩码和数据块中的数据。
在上述技术方案的基础上,S6中所述确认业务数据块的格式转换完毕之后,还包括以下步骤:对业务数据块进行序列化。
本发明提供的实现上述方法的将数据进行二进制序列化的系统,包括通用序列化格式创建模块和数据块格式转换模块;
通用序列化格式创建模块用于:创建数据块的通用序列化格式;
数据块格式转换模块用于:
数据块格式转换01:将需要进行序列化的业务数据块,作为格式转换数据块,进入数据块格式转换01流程;
数据块格式转换02:判断格式转换数据块中是否存在子数据块,若是,进入数据块格式转换03流程;否则进入数据块格式转换04流程;
数据块格式转换03:遍历格式转换数据块中的所有子数据块,将遍历到的子数据块作为格式转换数据块后,继续执行数据块格式转换02流程;
数据块格式转换04:按照通用序列化格式创建模块创建的通用序列化格式,对格式转换数据块进行转换,得到通用序列化数据块,执行数据块格式转换05流程;
数据块格式转换05:判断是否存在通用序列化数据块的母数据块,若是,执行数据块格式转换06流程,否则确认业务数据块的格式转换完毕;
执行数据块格式转换06:将通用序列化数据块与母数据块中对应的子数据块进行替换,当母数据块中的所有子数据块均替换为通用序列化数据块后,将当前母数据块作为通用序列化数据块,继续执行数据块格式转换05流程。
在上述技术方案的基础上,所述通用序列化格式创建模块创建的通用序列化格式,包括数据块长度、字段个数、字段掩码和数据块中的数据。
在上述技术方案的基础上,所述数据块长度位于数据块的表头,字段个数占一个字节,字段掩码表示对应字段是否有效。
在上述技术方案的基础上,数据块格式转换04的流程包括:获取格式转换数据块的数据块长度、字段个数、字段掩码和数据块中的数据,将数据块长度写入数据块头部,在数据块长度后依次写入字段个数、字段掩码和数据块中的数据。
在上述技术方案的基础上,该系统还包括数据块序列化模块,其用于:在数据块格式转换模块确认业务数据块的格式转换完毕后,对业务数据块进行序列化。
与现有技术相比,本发明的优点在于:
本发明能够为需要进行序列化的业务数据块,创建统一的通用序列化格式,在此基础上,本发明能够将业务数据块中所有嵌套的子数据块,根据通用序列化格式转化为格式统一的可识别数据块,嵌套的层次数目没有限制。与现有技术中序列化时无法识别格式不同的业务数据,本发明的可识别数据块的格式统一,能够在序列化时被识别。因此,本发明能够不重新生成业务数据的情况下,对发生改变后的业务数据进行序列化,进而显著提高了工作效率,便于人们使用。
附图说明
图1为本发明实施例中的通用序列化格式示意图;
图2为本发明实施例中的将数据进行二进制序列化的方法的流程图;
图3为本发明实施例中嵌套有子数据块的树型结构示意图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
参见图1所示,本发明实施例中的数据包括至少1个数据块,数据块还可以为嵌套结构,即1个数据块中又含有子数据块,依次类推。在此基础上,参见图2所示,本发明实施例中的将数据进行二进制序列化的方法,包括以下步骤:
S1:创建数据块的通用序列化格式,通用序列化格式包括数据块长度、字段个数、字段掩码和数据块中的数据,转到S2。
参见图1所示,S1通用序列化格式中的数据块长度位于数据块的表头,字段个数占一个字节,因此最多支持255个字段;字段掩码用一位表示一个字段,表示该字段是否有效,废弃的字段仍占用字段掩码位置,掩码标0表示无效,标1标识有效。为了便于扩展,通用序列化格式的尾部还包括扩展掩码,进而使得字段扩展往后追加,而不可往前插入,扩展掩码预留位数默认2字节即支持16个字段,如字段超过16个,会扩展掩码字节,追加到数据块的尾部。
S2:将需要进行序列化的业务数据块,作为格式转换数据块,转到S3。
S3:判断格式转换数据块中是否存在子数据块(即数据块为嵌套结构,下层有嵌套有子数据块),若是,则证明该数据块中存在需要转化格式才能进行序列化的子数据块,转到S4;否则证明该数据块的字段都是基础字段,该数据块不需要转化格式即可进行序列化,此时转到S5。
S3中不需要对都是基础字段的数据块转化格式即可进行序列化的原因为:无论业务数据是否发生改变,都不会改变基础字段的格式,因此不需要对基础字段进行处理,本领域普通技术人员根据业务数据的类型,即可得知哪些字段为基础字段。
S4:遍历格式转换数据块中的所有子数据块,将遍历到的子数据块作为格式转换数据块后,继续执行S3。
S5:按照S1中的通用序列化格式,对格式转换数据块进行转换,得到通用序列化数据块,转到S6。
参见图1所示,S5的流程包括:获取格式转换数据块的数据块长度、字段个数、字段掩码和数据块中的数据,将数据块长度写入数据块头部,在数据块长度后依次写入字段个数、字段掩码和数据块中的数据。
S6:判断是否存在通用序列化数据块的母数据块(即上层数据块),若是,转到S7,否则确认业务数据块的格式转换完毕,转到S8。
S7:将通用序列化数据块与母数据块中对应的子数据块进行替换,当母数据块中的所有子数据块均替换为通用序列化数据块后,将当前母数据块作为通用序列化数据块,继续执行S6。
S8:对业务数据块进行序列化。
为了便于公众理解,现将S2至S7的流程以1个树型结构进行说明。
参见图3所示,业务数据块即为根节点,上层是没有母数据块的,业务数据块中包括子数据块1和2、以及其余的基础字段1,此时需要遍历并转化子数据块1和2的格式。
子数据块2中仅含有基础字段2和3,则子数据块2不需要继续遍历,不需要遍历的节点为叶子节点。
子数据块1中又含有子数据块3和4,含有子数据块且上层有母数据块(业务数据块)的节点为中间节点(即子数据块1为数据块3和4的母数据块,业务数据块为子数据块1的母数据块),此时需要遍历并转化子数据块3和4的格式。
子数据块3和4均仅含有基础字段(基础字段5、6、7和8),即子数据块3和4为不需要继续遍历的叶子节点。
根据通用序列化格式对子数据块3和4进行转换后,将转化后的子数据块3和4填充至子数据块1的相应部分。
根据通用序列化格式对数据块1和2进行转化后(此时数据块1中的所有子数据块已经统一了格式),填充至业务数据块的相应部分。
本发明实施例中的实现上述方法的将数据进行二进制序列化的系统,该系统包括通用序列化格式创建模块、数据块格式转换模块和数据块序列化模块。
通用序列化格式创建模块用于:创建数据块的通用序列化格式;通用序列化格式,包括数据块长度、字段个数、字段掩码和数据块中的数据;数据块长度位于数据块的表头,字段个数占一个字节,字段掩码表示对应字段是否有效。
数据块格式转换模块用于:
数据块格式转换01:将需要进行序列化的业务数据块,作为格式转换数据块,进入数据块格式转换01流程;
数据块格式转换02:判断格式转换数据块中是否存在子数据块,若是,进入数据块格式转换03流程;否则进入数据块格式转换04流程;
数据块格式转换03:遍历格式转换数据块中的所有子数据块,将遍历到的子数据块作为格式转换数据块后,继续执行数据块格式转换02流程;
数据块格式转换04:按照通用序列化格式创建模块创建的通用序列化格式,对格式转换数据块进行转换(获取格式转换数据块的数据块长度、字段个数、字段掩码和数据块中的数据,将数据块长度写入数据块头部,在数据块长度后依次写入字段个数、字段掩码和数据块中的数据),得到通用序列化数据块,执行数据块格式转换05流程;
数据块格式转换05:判断是否存在通用序列化数据块的母数据块,若是,执行数据块格式转换06流程,否则确认业务数据块的格式转换完毕;
执行数据块格式转换06:将通用序列化数据块与母数据块中对应的子数据块进行替换,当母数据块中的所有子数据块均替换为通用序列化数据块后,将当前母数据块作为通用序列化数据块,继续执行数据块格式转换05流程。
数据块序列化模块用于:在数据块格式转换模块确认业务数据块的格式转换完毕后,对业务数据块进行序列化。
需要说明的是:本发明实施例提供的系统在进行模块间通信时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
进一步,本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (10)
1.一种将数据进行二进制序列化的方法,其特征在于,该方法包括以下步骤:
S1:创建数据块的通用序列化格式,转到S2;
S2:将需要进行序列化的业务数据块,作为格式转换数据块,转到S3;
S3:判断格式转换数据块中是否存在子数据块,若是,转到S4;否则转到S5;
S4:遍历格式转换数据块中的所有子数据块,将遍历到的子数据块作为格式转换数据块后,继续执行S3;
S5:按照S1中的通用序列化格式,对格式转换数据块进行转换,得到通用序列化数据块,转到S6;
S6:判断是否存在通用序列化数据块的母数据块,若是,转到S7,否则确认业务数据块的格式转换完毕;
S7:将通用序列化数据块与母数据块中对应的子数据块进行替换,当母数据块中的所有子数据块均替换为通用序列化数据块后,将当前母数据块作为通用序列化数据块,继续执行S6。
2.如权利要求1所述的将数据进行二进制序列化的方法,其特征在于:S1中所述通用序列化格式包括数据块长度、字段个数、字段掩码和数据块中的数据。
3.如权利要求2所述的将数据进行二进制序列化的方法,其特征在于:所述数据块长度位于数据块的表头,字段个数占一个字节,字段掩码表示对应字段是否有效。
4.如权利要求2所述的将数据进行二进制序列化的方法,其特征在于:S5的流程包括:获取格式转换数据块的数据块长度、字段个数、字段掩码和数据块中的数据,将数据块长度写入数据块头部,在数据块长度后依次写入字段个数、字段掩码和数据块中的数据。
5.如权利要求1至4任一项所述的将数据进行二进制序列化的方法,其特征在于:S6中所述确认业务数据块的格式转换完毕之后,还包括以下步骤:对业务数据块进行序列化。
6.一种实现权利要求1至5任一项所述方法的将数据进行二进制序列化的系统,其特征在于:该系统包括通用序列化格式创建模块和数据块格式转换模块;
通用序列化格式创建模块用于:创建数据块的通用序列化格式;
数据块格式转换模块用于:
数据块格式转换01:将需要进行序列化的业务数据块,作为格式转换数据块,进入数据块格式转换01流程;
数据块格式转换02:判断格式转换数据块中是否存在子数据块,若是,进入数据块格式转换03流程;否则进入数据块格式转换04流程;
数据块格式转换03:遍历格式转换数据块中的所有子数据块,将遍历到的子数据块作为格式转换数据块后,继续执行数据块格式转换02流程;
数据块格式转换04:按照通用序列化格式创建模块创建的通用序列化格式,对格式转换数据块进行转换,得到通用序列化数据块,执行数据块格式转换05流程;
数据块格式转换05:判断是否存在通用序列化数据块的母数据块,若是,执行数据块格式转换06流程,否则确认业务数据块的格式转换完毕;
执行数据块格式转换06:将通用序列化数据块与母数据块中对应的子数据块进行替换,当母数据块中的所有子数据块均替换为通用序列化数据块后,将当前母数据块作为通用序列化数据块,继续执行数据块格式转换05流程。
7.如权利要求6所述的将数据进行二进制序列化的系统,其特征在于:所述通用序列化格式创建模块创建的通用序列化格式,包括数据块长度、字段个数、字段掩码和数据块中的数据。
8.如权利要求7所述的将数据进行二进制序列化的系统,其特征在于:所述数据块长度位于数据块的表头,字段个数占一个字节,字段掩码表示对应字段是否有效。
9.如权利要求6所述的将数据进行二进制序列化的系统,其特征在于:数据块格式转换04的流程包括:获取格式转换数据块的数据块长度、字段个数、字段掩码和数据块中的数据,将数据块长度写入数据块头部,在数据块长度后依次写入字段个数、字段掩码和数据块中的数据。
10.如权利要求6至9任一项所述的将数据进行二进制序列化的系统,其特征在于:该系统还包括数据块序列化模块,其用于:在数据块格式转换模块确认业务数据块的格式转换完毕后,对业务数据块进行序列化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810135591.1A CN108446319B (zh) | 2018-02-09 | 2018-02-09 | 将数据进行二进制序列化的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810135591.1A CN108446319B (zh) | 2018-02-09 | 2018-02-09 | 将数据进行二进制序列化的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108446319A true CN108446319A (zh) | 2018-08-24 |
CN108446319B CN108446319B (zh) | 2021-08-03 |
Family
ID=63192153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810135591.1A Active CN108446319B (zh) | 2018-02-09 | 2018-02-09 | 将数据进行二进制序列化的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108446319B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110619218A (zh) * | 2018-12-29 | 2019-12-27 | 北京时光荏苒科技有限公司 | 用于生成信息的方法和装置 |
CN112214516A (zh) * | 2020-10-29 | 2021-01-12 | 株洲中车时代电气股份有限公司 | 数据序列化和反序列化的方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101196927A (zh) * | 2007-12-29 | 2008-06-11 | 中国建设银行股份有限公司 | 一种数据映射方法及一种数据映射装置 |
CN102487353A (zh) * | 2010-12-02 | 2012-06-06 | 卓望数码技术(深圳)有限公司 | 一种数据传输方法 |
US20140172795A1 (en) * | 2012-03-02 | 2014-06-19 | Huawei Technologies Co., Ltd. | Data processing method and data processing device |
US20140188822A1 (en) * | 2012-12-28 | 2014-07-03 | Futurewei Technologies, Inc. | Efficient De-Duping Using Deep Packet Inspection |
CN108334622A (zh) * | 2018-02-08 | 2018-07-27 | 竞技世界(北京)网络技术有限公司 | 一种获取格式化复合数据的方法 |
-
2018
- 2018-02-09 CN CN201810135591.1A patent/CN108446319B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101196927A (zh) * | 2007-12-29 | 2008-06-11 | 中国建设银行股份有限公司 | 一种数据映射方法及一种数据映射装置 |
CN102487353A (zh) * | 2010-12-02 | 2012-06-06 | 卓望数码技术(深圳)有限公司 | 一种数据传输方法 |
US20140172795A1 (en) * | 2012-03-02 | 2014-06-19 | Huawei Technologies Co., Ltd. | Data processing method and data processing device |
US20140188822A1 (en) * | 2012-12-28 | 2014-07-03 | Futurewei Technologies, Inc. | Efficient De-Duping Using Deep Packet Inspection |
CN108334622A (zh) * | 2018-02-08 | 2018-07-27 | 竞技世界(北京)网络技术有限公司 | 一种获取格式化复合数据的方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110619218A (zh) * | 2018-12-29 | 2019-12-27 | 北京时光荏苒科技有限公司 | 用于生成信息的方法和装置 |
CN110619218B (zh) * | 2018-12-29 | 2022-07-12 | 北京时光荏苒科技有限公司 | 用于生成信息的方法和装置 |
CN112214516A (zh) * | 2020-10-29 | 2021-01-12 | 株洲中车时代电气股份有限公司 | 数据序列化和反序列化的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108446319B (zh) | 2021-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106301678A (zh) | 一种数据处理的方法、通信设备及通信系统 | |
CN108446319A (zh) | 将数据进行二进制序列化的方法和系统 | |
CN101800912B (zh) | 客户信号映射和解映射的实现方法及装置 | |
CN106528786B (zh) | 快速迁移多源异构电网大数据到HBase的方法及系统 | |
CN105072130B (zh) | 一种asn.1解码器代码自动生成方法 | |
CN112287642B (zh) | 树形结构自增数据节点id及其路径链二进制编码方法 | |
CN103577897B (zh) | 一种土地利用空间布局智能优化的种群初始化方法 | |
CN103037032B (zh) | 一种使用fpga实现sv数据32位寻址访问的方法 | |
CN108509514A (zh) | 一种基于区块链的大数据分析方法及系统 | |
CN104408903B (zh) | 一种微功率无线抄表方法 | |
CN108874985B (zh) | 智能变电站scd文件的分布式解析配置方法 | |
CN107566925A (zh) | 一种数据传输方法及装置 | |
CN108629836A (zh) | 一种将CATIA BIM实体模型转换为SuperMap GIS标准化模型的方法 | |
CN105653694A (zh) | 一种北斗报文信息的存储与访问方法 | |
CN108173760A (zh) | 一种基于改进模拟退火算法的片上网络映射方法 | |
CN104881739A (zh) | 一种基于iec61970/61968 cim标准的营配数据一致性校验方法 | |
CN116860860B (zh) | 一种基于变电站电气设备模型全工程数据流转方法及设备 | |
CN117040542A (zh) | 一种智能综合配电箱能耗数据处理方法 | |
CN104461960A (zh) | 矩阵型遥测帧挑路遥测帧数据的处理方法 | |
CN106250356A (zh) | 基于Hash表的继电保护装置抽象对象的快速解析方法 | |
CN103428087B (zh) | 采用循环深度优先遍历的最长路预置保护p圈生成方法 | |
CN103853868B (zh) | 基于catia的等高线二维工程图出图方法 | |
CN107463540A (zh) | 电能质量数据的处理方法及电能质量监测装置 | |
CN107612884A (zh) | 一种用电信息采集系统电能表协议标准转换方法 | |
CN104268034B (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 |