CN111342933B - 数据传输方法、设备及介质 - Google Patents
数据传输方法、设备及介质 Download PDFInfo
- Publication number
- CN111342933B CN111342933B CN202010116168.4A CN202010116168A CN111342933B CN 111342933 B CN111342933 B CN 111342933B CN 202010116168 A CN202010116168 A CN 202010116168A CN 111342933 B CN111342933 B CN 111342933B
- Authority
- CN
- China
- Prior art keywords
- data
- json
- leaf
- node
- branch
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0083—Formatting with frames or packets; Protocol or part of protocol for error control
-
- 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/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0084—Formats for payload data
-
- 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/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Abstract
本发明公开了一种数据传输方法、设备及介质,本发明的一种数据传输方法通过加载JSON数据,其中JSON数据包括第一JSON数据和第二JSON数据,之后对JSON数据分别进行去重得到第一去重数据和第二去重数据,并遍历第一去重数据和第二去重数据,通过比较第一去重数据和第二去重数据进行标识和融合得到第三JSON数据,最终传输第三JSON数据,解决了现有方法扩展性不足和传输冗余配置信息增加的问题,降低系统开发测试成本。
Description
技术领域
本发明涉及计算机应用技术领域,尤其是涉及一种数据传输方法、设备及介质。
背景技术
目前,在网络设备配置系统间通过HTTP接口进行配置数据的增量传输时,通常采用JSON数据格式进行增量数据传输。目前进行JSON增量数据传输主要采用两种方式:一种方法是根据不同的业务层级和业务维度提供多个相对独立的接口,这种方法需要根据业务要求保证数据处理的串行化,增加系统开发对接的难度,并且在配置数据增加时,还需要增加另外的接口,扩展性不足;另一种方法则是根据具体业务要求进行定制化更新后传输全量数据,这种方法过于业务耦合导致定制化程度较高,一旦业务需求有变化,会增加开发、测试和系统对接的负担,并且会额外传输冗余配置信息。因此需要提出一种数据传输方法,用以解决现有方法的扩展性不足的问题和传输配置信息的冗余。
发明内容
本发明旨在解决现有技术中存在的技术问题。为此,本发明提出一种数据传输方法,能够解决现有方法的扩展性不足的问题和传输配置信息的冗余。
对应于一种数据传输方法,本发明还提出一种设备。
对应于一种数据传输方法,本发明还提出一种计算机可读存储介质。
第一方面,本发明采用的技术方案为一种数据传输方法,包括:加载JSON数据,所述JSON数据包括第一JSON数据和第二JSON数据;对所述JSON数据分别进行去重得到第一去重数据和第二去重数据;遍历所述第一去重数据和所述第二去重数据并进行标识,并根据标识进行融合得到第三JSON数据并进行传输。
进一步地,所述对所述JSON数据分别进行去重得到第一去重数据和第二去重数据包括:在所述第一JSON数据中删除与所述第二JSON数据中相同的JSON元素得到第一去重数据;在所述第二JSON数据中删除与所述第一JSON数据中相同的JSON元素得到第二去重数据。
进一步地,所述遍历所述第一去重数据和所述第二去重数据并进行标识之前,还包括:创建JSON对象,所述JSON对象用于接收所述第三JSON数据。
进一步地,所述创建JSON对象,还包括:设置所述JSON对象中数组元素的主键和key值。
进一步地,所述遍历所述第一去重数据和所述第二去重数据并进行标识包括:对所述第一去重数据和所述第二去重数据进行递归遍历获取所有叶子节点和分支节点;对所述分支节点进行第一判断,根据所述第一判断的结果在所述分支节点上进行分支标识;对所述叶子节点进行第二判断,根据所述第二判断的结果在所述叶子节点上进行叶子标识,同时对所述叶子节点的值进行第三判断,根据第三判断的结果进行值标识,所述值标识作为键。
进一步地,所述第一判断包括:所述第一判断包括:如果所述分支节点有只存在于第二去重数据中,则在所述分支节点上标记分支新增标识;
如果所述分支节点只存在于第一去重数据中,则在所述分支节点上标记分支移除标识;
如果所述分支节点同时存在于第一去重数据和第二去重数据中,则在所述分支节点上标记分支变化标识。
进一步地,所述第二判断包括:
如果所述叶子节点只存在于第二去重数据,则在所述叶子节点上标记叶子新增标识,所述叶子节点转为分支节点,并新增下级叶子节点;
如果所述叶子节点只存在于第一去重数据中,则在所述叶子节点上标记叶子移除标识,所述叶子节点转为分支节点,并新增下级叶子节点;
如果所述叶子节点同时存在于第一去重数据和第二去重数据中,则在所述叶子节点上标记叶子变化标识,所述叶子节点转为分支节点,并新增下级叶子节点;
如果所述叶子节点作为数组主键,则在所述叶子节点上标记叶子主键标识。
进一步地,所述第三判断包括:如果经过所述第二判断后的叶子节点的值不变,则为所述下级叶子节点标记值固定标识,所述标记值固定标识作为键;如果经过所述第二判断后的叶子节点的值发生变化,则为所述下级叶子节点标记值变化标识,所述值变化标识作为键。
第二方面,本发明的采用的技术方案为一种设备,包括:至少一个处理器,以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面所述的一种数据传输方法。
第三方面,本发明的采用的技术方案为一种计算机可读存储介质,包括:所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如第一方面所述的一种数据传输方法。
本发明的有益效果是:
本发明提供一种数据传输方法、设备及介质,本发明的数据传输方法中通过加载JSON数据,其中JSON数据包括第一JSON数据和第二JSON数据,之后对JSON数据分别进行去重得到第一去重数据和第二去重数据,并遍历第一去重数据和第二去重数据,通过比较第一去重数据和第二去重数据进行标识和融合得到第三JSON数据,最终传输第三JSON数据,解决了现有方法扩展性不足和传输冗余配置信息增加的问题,降低系统开发测试成本。
附图说明
图1是本发明一种数据传输方法的一实施例的流程示意图;
图2是本发明一种数据传输方法的另一实施例的流程示意图;
图3是本发明一种数据传输方法的又一实施例的流程示意图。
具体实施方式
以下将结合实施例对本发明的构思及产生的技术效果进行清楚、完整地描述,以充分地理解本发明的目的、特征和效果。显然,所描述的实施例只是本发明的一部分实施例,而不是全部实施例,基于本发明的实施例,本领域的技术人员在不付出创造性劳动的前提下所获得的其他实施例,均属于本发明保护的范围。
在本发明的描述中,如果涉及到方位描述,例如“上”、“下”、“前”、“后”、“左”、“右”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。如果某一特征被称为“设置”、“固定”、“连接”、“安装”在另一个特征,它可以直接设置、固定、连接在另一个特征上,也可以间接地设置、固定、连接、安装在另一个特征上。
在本发明实施例的描述中,如果涉及到“若干”,其含义是一个以上,如果涉及到“多个”,其含义是两个以上,如果涉及到“大于”、“小于”、“超过”,均应理解为不包括本数,如果涉及到“以上”、“以下”、“以内”,均应理解为包括本数。如果涉及到“第一”、“第二”,应当理解为用于区分技术特征,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
基于此,本发明实施例提供了一种数据传输方法、设备及介质,通过数据传输方法传输JSON数据,解决现有方法扩展性不足和传输冗余配置信息增加的问题,降低系统开发测试成本。
第一方面,本发明实施例提供一种数据传输方法。数据传输方法通过加载JSON数据,其中JSON数据包括第一JSON数据和第二JSON数据,之后对JSON数据分别进行去重得到第一去重数据和第二去重数据,并对第一去重数据和所述第二去重数据进行标识,得到第一简化JSON数据和第二简化JSON数据;根据标识对第一简化JSON数据和第二简化JSON数据进行融合得到第三JSON数据并进行传输,解决了现有方法扩展性不足和传输冗余配置信息增加的问题,降低系统开发测试成本。
参考图1,本发明实施例提供的数据传输方法,包括:
S1200,加载JSON数据;
S1400,对JSON数据进行去重,得到第一去重数据和第二去重数据;
S1600,遍历第一去重数据和第二去重数据进行标识并融合;
S1800,遍历融合结束得到第三JSON数据进行传输。
在一些实施例中,步骤S1200中,从数据库database中加载JSON数据,其中JSON数据包括第一JSON数据和第二JSON数据,可以定义加载的修改前的JSON数据即旧JSON数据为第一JSON数据,修改后的JSON数据即新JSON数据为第二JSON数据。
第一JSON数据和第二JSON数据具体应用示例如下:
第一JSON数据示例表示为:
在上述具体应用实例中,第一JSON数据和第二JSON数据中各自存在值和键相同和不同的JSON元素。
在一些实施例中,步骤S1400中,对加载后的JSON数据,即第一JSON数据和第二JSON数据进行去重得到第一去重数据和第二去重数据,还包括:
S1420,在第一JSON数据中删除与所述第二JSON数据中相同的JSON元素得到第一去重数据;
S1440,在所述第二JSON数据中删除与所述第一JSON数据中相同的JSON元素得到第二去重数据。
通过对第一JSON数据和第二JSON数据进行去重,保证了JSON数据传输时只传输变量数据,不需要传输不必要的冗余信息,减轻系统负担。
在一些实施例中,步骤S1420,可以通过递归算法,在第一JSON数据中删除与第二JSON数据中值相同的新的JSON元素,得到第一去重数据,并且如果第一JSON数据中的JSON对象下没有具体的叶子节点值,则删除该JSON对象,根据之前提到的第一JSON数据的具体应用示例得到对第一JSON数据去重得到第一去重数据的具体应用示例如下:
在一些实施例中,步骤S1440中,可以通过递归算法,在第二JSON数据中删除与第一JSON数据中值相同的旧的JSON元素,得到第二去重数据,并且如果第二JSON数据中的JSON对象下没有具体的叶子节点值,则删除该JSON对象,根据之前提到的第二JSON数据的具体应用示例得到对第二JSON数据去重得到第二去重数据的具体应用示例如下:
在一些实施例中,步骤S1600前还包括:
S1500,创建JSON对象,用于接收第三JSON数据。
在步骤S1500中,创建一个JSON对象,该JSON对象用于接收步骤S1600中遍历第一去重数据和第二去重数据进行标识并融合后的数据。
在一些实施例中,步骤S1500中,还包括:
步骤S1510,设置JSON对象中数组元素的主键和key值。
步骤S1510中,若第一去重数据和第二去重数据中含有JSON数组元素,则需要指定JSON数组元素的主键和key值,JSON数据元素可以根据所指定的主键和key值进行匹配对比,从而比较第一去重数据和第二去重数据中的元素以便进行标识,创建一个JSON对象的具体应用示例可以根据之前提到的第一去重数据和第二去重数据的具体应用实例得到,示例如下:
创建JSON对象,用于接收第一去重数据和第二去重数据进行标识并融合后的数据,表示为:
JSONObjectjsonConvergentTarget=new JSONObject();
若第一去重数据和第二去重数据存在JSON数组元素,则指定JSON数组元素的主键和key值,表示为:
jsonComparer.arrayKey.put("/topbranch/branch-array","array-node-id");
在一些实施例中,步骤S1600中,通过递归遍历第一去重数据和第二去重数据,并进行对比第一去重数据与第二去重数据中的元素,并根据对比元素后进行标识和融合。
在一些实施例中,参考图2,步骤S1600具体包括下述步骤:
S1610,遍历第一去重数据和第二去重数据获取所有叶子节点和分支节点;
S1620,对分支节点进行第一判断,并根据第一判断的结果进行分支标识;
S1630,对叶子节点进行第二判断,并根据第二判断的结果进行节点标识;
S1640,对原叶子节点的值进行第三判断,并根据第三判断的结果进行值标识;
在步骤S1610中,通过递归遍历第一去重数据和第二去重数据以此来获取第一去重数据和第二去重数据中所有的叶子节点和分支节点。
在步骤S1620中,对分支节点进行第一判断,并根据第一判断的结果在该分支节点上进行分支标识,具体的,第一判断包括:
比较第一去重数据和第二去重数据,若该分支节点只存在于第二去重数据中,即说明该分支节点为第二去重数据与第一去重数据对比后第二去重数据中新增并仅存于第二去重数据中的子元素,则在该分支节点的key结尾上标记分支新增标识。
在可能实施的应用实例中,分支新增标识可以定为“_newer_branch_tag_”,用于表示该分支节点上相对于第一去重数据而言是新增的分支节点。
比较第一去重数据和第二去重数据,若该分支节点只存在于第一去重数据中,即说明该分支节点为第一去重数据与第二去重数据对比后第二去重数据中删除并仅存在于第一去重数据中的子元素,则在该分支节点的key结尾上标记分支移除标识。
在可能实施的应用实例中,分支移除标识可以定为“_older_branch_tag_”,用于表示该分支节点上相对于第二去重数据而言是移除的分支节点。
比较第一去重数据和第二去重数据,若该分支节点同时存在于第一去重数据中,即说明该分支节点为第一去重数据与第二去重数据对比后第一去重数据和第二去重数据中共有的子元素,则在该分支节点的key结尾上标记分支变化标识。
在可能实施的应用实例中,分支变化标识可以定为“_both_branch_tag_”,用于表示该分支节点同时存在于第一去重数据和第二去重数据的分支节点并且子元素有变化的分支节点。
在步骤S1630,对叶子节点进行第二判断,并根据第二判断的结果在该叶子节点上进行叶子标识,具体的,第二判断包括:
比较第一去重数据和第二去重数据,若该叶子节点只存在于第二去重数据中,即说明该叶子节点为第二去重数据与第一去重数据对比后第二去重数据中新增并仅存于第二去重数据中的子元素,则在该叶子节点的key结尾上标记叶子新增标识。
在可能实施的应用实例中,叶子新增标识可以定为“_newer_leaf_tag_”,用于表示该叶子节点上相对于第一去重数据而言是新增的叶子节点。
比较第一去重数据和第二去重数据,若该叶子节点只存在于第一去重数据中,即说明该叶子节点为第一去重数据与第二去重数据对比后第二去重数据中移除并仅存在于第一去重数据中的子元素,则在该叶子节点的key结尾上标记叶子移除标识。
在可能实施的应用实例中,叶子移除标识可以定为“_older_leaf_tag_”,用于表示该叶子节点上相对于第二去重数据而言是移除的叶子节点。
比较第一去重数据和第二去重数据,若该叶子节点同时存在于第一去重数据中,即说明该叶子节点为第一去重数据与第二去重数据对比后第一去重数据和第二去重数据中共有的子元素,则在该叶子节点的key结尾上标记叶子变化标识。
在可能实施的应用实例中,叶子变化标识可以定为“_both_leaf_tag_”,用于表示该叶子节点同时存在于第一去重数据和第二去重数据的叶子节点并且值发生变化的叶子节点。
在一些实施例中,如果该叶子节点作为步骤S1510中指定的数组主键,则在该叶子节点上标记叶子主键标识。
在可能实施的应用实例中,叶子变化标识可以定为“_primarykey_leaf_tag_”,用于表示该叶子节点为步骤S1510中指定的作为数组主键的叶子节点。
在进行步骤S1630后,该叶子节点经过第一判断后,标记了叶子标识,并且该叶子节点转变为非叶子节点,并且新增下级叶子节点,同时进行步骤S1640对原叶子节点的值进行第三判断,根据第三判断结果进行值标识,该值标识作为新增的下级叶子节点的key,而该下级叶子节点的key值则为原叶子节点的值。
在步骤S1640中,对叶子节点的值进行第三判断,并根据第三判断的结果进行值标识,具体第三判断包括:
比较第一去重数据和第二去重数据,如果经过第二判断后的叶子节点的值未发生变化,则在标记值固定标识,并且值固定标识作为新增的下级叶子节点的key。
在可能实施的应用实例中,值固定标识可以定为“_older_”,用于表示原叶子节点的值未发生变化,并且该值固定拜师作为新增的下级叶子节点的key。
比较第一去重数据和第二去重数据,如果经过第二判断后的叶子节点的值发生变化,则在标记值变化标识,并且值变化标识作为新增的下级叶子节点的key。
在可能实施的应用实例中,值变化标识可以定为“_newer_”,表示原叶子节点的值发生变化,并且该值固定拜师作为新增的下级叶子节点的key。
在上述实施例中,通过对子元素的标记,标识了修改前后的数据值,从而方便对数据值的识别和传输。
在经过步骤S1600遍历结束后,执行步骤S1800,遍历并融合结束后得到第三JSON数据,传输该第三JSON数据,最终得到的第三JSON数据就是基于第一JSON数据和第二JSON数据的增量数据。
在可能实现的应用实例中,根据之前提到的第一去重数据和第二去重数据的应用实例,最终得到第三JSON数据的应用实例表示如下:
上述具体应用示例中提到的标识,均为步骤S1600中提到的分支标识、叶子标识和值标识的具体应用示例,例如:
分支标识包括分支新增标识、分支移除标识和分支变化标识,其中分支新增标识为“_newer_branch_tag_”,分支移除标识为“_older_branch_tag_”,分支变化标识为“_both_branch_tag_”;
叶子标识包括叶子新增标识、叶子移除标识、叶子变化标识和叶子主键标识,其中叶子新增标识为“_newer_leaf_tag_”,叶子移除标识为“_older_leaf_tag_”,叶子变化标识为“_both_leaf_tag_”,叶子主键标识为“_primarykey_leaf_tag_”;
值标识包括值固定标识和值变化标识,其中值固定标识为“_older_”和值变化标识为“_newer_”。
本发明实施例一方面通过这种数据传输方法,解决了现有JSON数据传输方法存在的问题,例如:扩展性不足、系统对接难度大、数据信息冗余、业务过于耦合的问题,通过第一方面提到的数据传输方法传输JSON格式的配置信息,在同一批次内的配置数据传输中,仅需在一个接口内完成,从而保证业务功能的完整性;并且这种数据传输方法不需要与具体的业务进行强制绑定,即无需定制化,从而保证数据的可扩展性;基于这种方法的可扩展性,因此不需要因为引入新的业务而需要额外扩展接口,从而降低了接口开发、调测的成本;另一方面,通过去重的方法,保证了在传输JSON数据中,只传输变量数据,无需携带不必要的冗余信息,以及通过标识,标识出了修改前后的值,便于系统对数据的识别。因此,本发明实施例提到的增量数据传输方法,不仅在一次的接口同步中保持了数据的完整性,又提供了良好扩展性和高兼容性,并且只传输增量数据,无需携带冗余信息。
第二方面,本发明实施例还提供了一种设备,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器;
其中,所述处理器通过调用所述存储器中存储的计算机程序,用于执行第一方面实施例中提到的一种数据传输方法。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序,如本发明第一方面实施例中的数据传输方法。处理器通过运行存储在存储器中的非暂态软件程序以及指令,从而实现上述第一方面实施例中的数据传输方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储执行上述第一方面实施例中的数据传输方法。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现上述第一方面实施例中的数据传输方法所需的非暂态软件程序以及指令存储在存储器中,当被一个或者多个处理器执行时,执行上述第一方面实施例中的数据传输方法。
第三方面,本申请实施例还提供了计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于:执行第一方面提到的数据传输方法;
在一些实施例中,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个控制处理器执行,例如,被第二方面实施例的设备中的一个处理器执行,可使得上述一个或多个处理器执行上述第一方面实施例中的数据传输方法。
以上所描述的设备实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在所述技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。此外,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
Claims (9)
1.一种数据传输方法,其特征在于,包括:
加载JSON数据,所述JSON数据包括第一JSON数据和第二JSON数据;
对所述JSON数据分别进行去重得到第一去重数据和第二去重数据;
遍历所述第一去重数据和所述第二去重数据进行标识,根据所述标识进行融合得到第三JSON数据并进行传输;
所述对所述JSON数据分别进行去重得到第一去重数据和第二去重数据包括:
在所述第一JSON数据中删除与所述第二JSON数据中相同的JSON元素得到第一去重数据;
在所述第二JSON数据中删除与所述第一JSON数据中相同的JSON元素得到第二去重数据;其中,所述第一JSON数据为修改前的JSON数据即旧JSON数据,所述第二JSON数据为修改后的JSON数据即新JSON数据。
2.根据权利要求1所述的一种数据传输方法,其特征在于,所述遍历所述第一去重数据和所述第二去重数据进行标识之前,还包括:
创建JSON对象,所述JSON对象用于接收所述第三JSON数据。
3.根据权利要求2所述的一种数据传输方法,其特征在于,所述创建JSON对象,还包括:设置所述JSON对象中数组元素的主键和key值。
4.根据权利要求1所述的一种数据传输方法,其特征在于,所述遍历所述第一去重数据和所述第二去重数据进行标识包括:
对所述第一去重数据和所述第二去重数据进行递归遍历获取所有叶子节点和分支节点;
对所述分支节点进行第一判断,根据所述第一判断的结果在所述分支节点上进行分支标识;
对所述叶子节点进行第二判断,根据所述第二判断的结果在所述叶子节点上进行叶子标识,同时对所述叶子节点的值进行第三判断,根据第三判断的结果进行值标识,所述值标识作为键。
5.根据权利要求4所述的一种数据传输方法,其特征在于,所述第一判断包括:如果所述分支节点有只存在于第二去重数据中,则在所述分支节点上标记分支新增标识;
如果所述分支节点只存在于第一去重数据中,则在所述分支节点上标记分支移除标识;
如果所述分支节点同时存在于第一去重数据和第二去重数据中,则在所述分支节点上标记分支变化标识。
6.根据权利要求5所述的一种数据传输方法,其特征在于,所述第二判断包括:
如果所述叶子节点只存在于第二去重数据,则在所述叶子节点上标记叶子新增标识,所述叶子节点转为分支节点,并新增下级叶子节点;
如果所述叶子节点只存在于第一去重数据中,则在所述叶子节点上标记叶子移除标识,所述叶子节点转为分支节点,并新增下级叶子节点;
如果所述叶子节点同时存在于第一去重数据和第二去重数据中,则在所述叶子节点上标记叶子变化标识,所述叶子节点转为分支节点,并新增下级叶子节点;
如果所述叶子节点作为数组主键,则在所述叶子节点上标记叶子主键标识。
7.根据权利要求6所述的一种数据传输方法,其特征在于,所述第三判断包括:
如果经过所述第二判断后的叶子节点的值不变,则为所述下级叶子节点标记值固定标识,所述标记值固定标识作为键;
如果经过所述第二判断后的叶子节点的值发生变化,则为所述下级叶子节点标记值变化标识,所述值变化标识作为键。
8.一种设备,其特征在于,包括:至少一个处理器,
以及,与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7任一项所述的一种数据传输方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1至7任一项所述的一种数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010116168.4A CN111342933B (zh) | 2020-02-25 | 2020-02-25 | 数据传输方法、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010116168.4A CN111342933B (zh) | 2020-02-25 | 2020-02-25 | 数据传输方法、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111342933A CN111342933A (zh) | 2020-06-26 |
CN111342933B true CN111342933B (zh) | 2022-06-07 |
Family
ID=71187474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010116168.4A Active CN111342933B (zh) | 2020-02-25 | 2020-02-25 | 数据传输方法、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111342933B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622443A (zh) * | 2012-03-13 | 2012-08-01 | 北京邮电大学 | 一种面向微博的定制化筛选系统及方法 |
CN103645970A (zh) * | 2013-12-13 | 2014-03-19 | 华为技术有限公司 | 一种远程复制多快照间增量去重的实现方法及装置 |
CN106445643A (zh) * | 2016-11-14 | 2017-02-22 | 上海云轴信息科技有限公司 | 克隆、升级虚拟机的方法及设备 |
CN107688664A (zh) * | 2017-09-25 | 2018-02-13 | 平安科技(深圳)有限公司 | 图表生成方法、装置、计算机设备和存储介质 |
CN108681590A (zh) * | 2018-05-15 | 2018-10-19 | 普信恒业科技发展(北京)有限公司 | 增量数据处理方法及装置、计算机设备、计算机存储介质 |
CN108733689A (zh) * | 2017-04-18 | 2018-11-02 | 北京京东尚科信息技术有限公司 | 一种json文本的比对方法和装置 |
CN109086204A (zh) * | 2018-07-20 | 2018-12-25 | 北京小米移动软件有限公司 | 节点关系树建立、页面标记和识别方法、装置和存储介质 |
CN109379432A (zh) * | 2018-10-31 | 2019-02-22 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、服务器及计算机可读存储介质 |
EP3477490A1 (en) * | 2017-10-26 | 2019-05-01 | Druva Technologies Pte. Ltd. | Deduplicated merged indexed object storage file system |
CN110084668A (zh) * | 2019-04-09 | 2019-08-02 | 北京中科智营科技发展有限公司 | 一种分类交互界面的数据处理方法和数据处理装置 |
CN110244973A (zh) * | 2018-03-09 | 2019-09-17 | 高德信息技术有限公司 | 数据更新包的生成方法、装置及数据更新方法、装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10152497B2 (en) * | 2016-02-24 | 2018-12-11 | Salesforce.Com, Inc. | Bulk deduplication detection |
US10868674B2 (en) * | 2016-08-12 | 2020-12-15 | ALTR Solutions, Inc. | Decentralized database optimizations |
-
2020
- 2020-02-25 CN CN202010116168.4A patent/CN111342933B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622443A (zh) * | 2012-03-13 | 2012-08-01 | 北京邮电大学 | 一种面向微博的定制化筛选系统及方法 |
CN103645970A (zh) * | 2013-12-13 | 2014-03-19 | 华为技术有限公司 | 一种远程复制多快照间增量去重的实现方法及装置 |
CN106445643A (zh) * | 2016-11-14 | 2017-02-22 | 上海云轴信息科技有限公司 | 克隆、升级虚拟机的方法及设备 |
CN108733689A (zh) * | 2017-04-18 | 2018-11-02 | 北京京东尚科信息技术有限公司 | 一种json文本的比对方法和装置 |
CN107688664A (zh) * | 2017-09-25 | 2018-02-13 | 平安科技(深圳)有限公司 | 图表生成方法、装置、计算机设备和存储介质 |
EP3477490A1 (en) * | 2017-10-26 | 2019-05-01 | Druva Technologies Pte. Ltd. | Deduplicated merged indexed object storage file system |
CN110244973A (zh) * | 2018-03-09 | 2019-09-17 | 高德信息技术有限公司 | 数据更新包的生成方法、装置及数据更新方法、装置 |
CN108681590A (zh) * | 2018-05-15 | 2018-10-19 | 普信恒业科技发展(北京)有限公司 | 增量数据处理方法及装置、计算机设备、计算机存储介质 |
CN109086204A (zh) * | 2018-07-20 | 2018-12-25 | 北京小米移动软件有限公司 | 节点关系树建立、页面标记和识别方法、装置和存储介质 |
CN109379432A (zh) * | 2018-10-31 | 2019-02-22 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、服务器及计算机可读存储介质 |
CN110084668A (zh) * | 2019-04-09 | 2019-08-02 | 北京中科智营科技发展有限公司 | 一种分类交互界面的数据处理方法和数据处理装置 |
Non-Patent Citations (4)
Title |
---|
Intelligent Data Engineering for Migration to NoSQL Based Secure Environments;Shabana Ramzan;《IEEE》;20190515;全文 * |
基于Hive的支付SDK日志分析系统的设计研究;王建辉等;《计算机应用与软件》;20170715(第07期);全文 * |
基于Python的网络新闻爬虫与检索;陈欢等;《软件导刊》;20190515(第05期);全文 * |
短文本指纹的研究;赵小谦;《中国优秀硕士学位论文全文数据库信息科技辑》;20120630;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111342933A (zh) | 2020-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107786638B (zh) | 一种数据处理方法、装置及系统 | |
CN104199750B (zh) | 一种linux系统的文件恢复方法及装置 | |
US20160321063A1 (en) | Method and Device for Making Differential Upgrade Package, and Method and Device for System Differential Upgrading | |
CN101589592A (zh) | 多协议可移动存储设备 | |
CN106844120B (zh) | 一种绑定多路adb设备和usb端口的方法和装置 | |
CN110351715A (zh) | At指令处理方法、终端适配器及计算机可读存储介质 | |
CN113157651B (zh) | 一种安卓工程项目的资源文件批量重命名的方法、系统、设备和介质 | |
CN111966287A (zh) | 数据存储方法、电子设备及存储介质 | |
CN108509215A (zh) | 一种系统软件的更换方法、装置、终端设备及存储介质 | |
CN111342933B (zh) | 数据传输方法、设备及介质 | |
US11455117B2 (en) | Data reading method, apparatus, and system, avoiding version rollback issues in distributed system | |
CN105988943B (zh) | 一种驱动无线适配器的方法及装置 | |
CN113190325A (zh) | 一种容器创建方法及装置 | |
CN110019040B (zh) | 一种文件夹处理方法、移动终端及存储介质 | |
CN103902409B (zh) | 一种日志备份方法及装置 | |
CN107515958A (zh) | 电路布线检查方法及装置 | |
CN110674084A (zh) | 用于数据保护的方法、设备和计算机可读存储介质 | |
CN112347046B (zh) | 一种获取分布式系统中文件的创建时间的方法 | |
CN110008183B (zh) | 一种智能卡文件系统的文件搜索方法 | |
CN112527338A (zh) | 微服务升级方法、电子设备和可读存储介质 | |
US9930521B2 (en) | Method for updating preferred roaming list of UIM card | |
CN112905383A (zh) | 处理文件擦写次数的方法、装置和5g通信卡 | |
CN113076273B (zh) | 组件接入方法、装置、电子设备、存储介质及程序产品 | |
CN105490817B (zh) | 接口板热插拔处理方法及装置 | |
CN110929500B (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 | ||
CB02 | Change of applicant information |
Address after: 518000 w601, Shenzhen Hong Kong industry university research base, 015 Gaoxin South 7th Road, high tech Zone community, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province Applicant after: ASPIRE TECHNOLOGIES (SHENZHEN) LTD. Address before: 518000 south wing, 6th floor, west block, Shenzhen Hong Kong industry university research base building, South District, high tech Industrial Park, Nanshan District, Shenzhen City, Guangdong Province Applicant before: ASPIRE TECHNOLOGIES (SHENZHEN) LTD. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |