[发明专利]嵌套型数据的合并方法、装置及电子设备有效
| 申请号: | 201910828338.9 | 申请日: | 2019-09-03 |
| 公开(公告)号: | CN110516122B | 公开(公告)日: | 2022-05-13 |
| 发明(设计)人: | 杨之江 | 申请(专利权)人: | 网易(杭州)网络有限公司 |
| 主分类号: | G06F16/901 | 分类号: | G06F16/901;G06F16/903 |
| 代理公司: | 北京超成律师事务所 11646 | 代理人: | 吴迪 |
| 地址: | 310052 浙江省*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 嵌套 数据 合并 方法 装置 电子设备 | ||
本发明提供了一种嵌套型数据的合并方法、装置及电子设备,涉及数据复制技术领域,该方法中,嵌套型数据包含多个字典数据,字典数据包括引用和引用对应的数据,引用对应的数据包括至少一个键值对,键值对包括键和键值;该方法包括:获取嵌套型数据中的每个字典数据对应的引用;按照字典数据的优先级顺序,将每个引用存入预先构建的字典数据结构的字典数组中;对存有引用的字典数组应用字典键值查询方式或者字典遍历方式,得到嵌套型数据对应的合并数据。本发明能够缓解现有技术中通过深拷贝进行数据合并而导致的内存和性能开销大的技术问题。
技术领域
本发明涉及数据复制技术领域,尤其是涉及一种嵌套型数据的合并方法、装置及电子设备。
背景技术
对于有多层嵌套字典的数据格式,当需要根据优先级的不同将多份此类数据合并成一份数据时,通常的做法是使用deepcopy深拷贝方式。举例来说,创建游戏中的怪物时,通常将用于初始化的数据分为四部分:不变数据(对于同一种怪物而言)、等级相关数据、编辑器修改数据、程序代码修改数据。由于怪物数据是分层组织的,使用浅拷贝将会破坏原始数据,所以必须使用deepcopy来合并数据,即递归对每一层数据进行拷贝。而使用deepcopy的方式需要申请一块额外内存,内存大小和合并后的数据相同。因此,在合并这些数据过程中会有比较大的性能开销。
发明内容
本发明的目的在于提供一种嵌套型数据的合并方法、装置及电子设备,以缓解了现有技术中通过深拷贝进行数据合并而导致的内存和性能开销大的技术问题。
本发明实施例提供的一种嵌套型数据的合并方法,嵌套型数据包含多个字典数据,字典数据包括引用和引用对应的数据,引用对应的数据包括至少一个键值对,键值对包括键和键值;该方法包括:获取嵌套型数据中的每个字典数据对应的引用;按照字典数据的优先级顺序,将每个引用存入预先构建的字典数据结构的字典数组中;对存有引用的字典数组应用字典键值查询方式或者字典遍历方式,得到嵌套型数据对应的合并数据。
进一步的,上述按照字典数据的优先级顺序,将每个引用存入预先构建的字典数据结构的字典数组中的步骤包括:按照字典数据的优先级从低到高的顺序,将每个引用逐一存入预先构建的字典数据结构的字典数组中。
进一步的,上述对存有引用的字典数组应用字典键值查询方式,得到嵌套型数据对应的合并数据的步骤,包括:将每个字典数据包括的键逐一作为当前键,对每个当前键均执行以下步骤:按照每个引用在字典数组中的前后顺序,从引用对应的数据中查找到当前键对应的键值;根据每个键及其对应的键值,生成嵌套型数据对应的合并数据。
进一步的,上述按照每个引用在字典数组中的前后顺序,从引用对应的数据中查找到当前键对应的键值的步骤,包括:判断当前键是否存在于当前遍历的引用对应的数据中,以及判断当前键对应的键值是否是字典;如果当前键存在于当前遍历的引用对应的数据中,且当前键对应的键值不是字典,将键值确定为当前键的键值;如果当前键存在于当前遍历的引用对应的数据中,且当前键对应的键值是字典,将当前键对应的字典添加至临时数据缓存结构中,继续遍历剩余引用对应的数据,直至所有引用遍历完成,将临时数据缓存结构中的字典,作为当前键对应的键值。
进一步的,上述根据每个键及其对应的键值,生成嵌套型数据对应的合并数据的步骤,还包括:针对每个键对应的键值,执行以下筛选步骤:判断键对应的键值中是否包括多个字典,且多个字典中包含有相同的键;如果是,保留多个字典中键所属的字典对应的字典数据的优先级最高的键及其键值;将筛选步骤后的键及其对应的键值进行合并,得到嵌套型数据对应的合并数据。
进一步的,上述字典数据结构还包括:删除键集合;其中,删除键集合保存有已删除的键;判断当前键是否存在于当前遍历的引用对应的数据中的步骤之前,还包括:判断当前键是否存在于删除键集合中;如果不存在,执行判断当前键是否存在于当前遍历的引用对应的数据中的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于网易(杭州)网络有限公司,未经网易(杭州)网络有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910828338.9/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





