嵌套型数据的合并方法、装置及电子设备制造方法及图纸

技术编号:22688966 阅读:20 留言:0更新日期:2019-11-30 03:36
本发明专利技术提供了一种嵌套型数据的合并方法、装置及电子设备,涉及数据复制技术领域,该方法中,嵌套型数据包含多个字典数据,字典数据包括引用和引用对应的数据,引用对应的数据包括至少一个键值对,键值对包括键和键值;该方法包括:获取嵌套型数据中的每个字典数据对应的引用;按照字典数据的优先级顺序,将每个引用存入预先构建的字典数据结构的字典数组中;对存有引用的字典数组应用字典键值查询方式或者字典遍历方式,得到嵌套型数据对应的合并数据。本发明专利技术能够缓解现有技术中通过深拷贝进行数据合并而导致的内存和性能开销大的技术问题。

Merging method, device and electronic equipment of nested data

The invention provides a merging method, device and electronic device of nested data, which relates to the technical field of data replication. In the method, the nested data includes a plurality of dictionary data, the dictionary data includes reference and reference corresponding data, the reference corresponding data includes at least one key value pair, and the key value pair includes key and key value. The method includes: obtaining the key value of the nested data The reference corresponding to each dictionary data; according to the priority order of the dictionary data, store each reference in the dictionary array of the pre built dictionary data structure; apply the dictionary key value query method or dictionary traversal method to the dictionary array with reference to get the merged data corresponding to the nested data. The invention can alleviate the technical problem of large memory and performance cost caused by data merging through deep copy in the prior art.

【技术实现步骤摘要】
嵌套型数据的合并方法、装置及电子设备
本专利技术涉及数据复制
,尤其是涉及一种嵌套型数据的合并方法、装置及电子设备。
技术介绍
对于有多层嵌套字典的数据格式,当需要根据优先级的不同将多份此类数据合并成一份数据时,通常的做法是使用deepcopy深拷贝方式。举例来说,创建游戏中的怪物时,通常将用于初始化的数据分为四部分:不变数据(对于同一种怪物而言)、等级相关数据、编辑器修改数据、程序代码修改数据。由于怪物数据是分层组织的,使用浅拷贝将会破坏原始数据,所以必须使用deepcopy来合并数据,即递归对每一层数据进行拷贝。而使用deepcopy的方式需要申请一块额外内存,内存大小和合并后的数据相同。因此,在合并这些数据过程中会有比较大的性能开销。
技术实现思路
本专利技术的目的在于提供一种嵌套型数据的合并方法、装置及电子设备,以缓解了现有技术中通过深拷贝进行数据合并而导致的内存和性能开销大的技术问题。本专利技术实施例提供的一种嵌套型数据的合并方法,嵌套型数据包含多个字典数据,字典数据包括引用和引用对应的数据,引用对应的数据包括至少一个键值对,键值对包括键和键值;该方法包括:获取嵌套型数据中的每个字典数据对应的引用;按照字典数据的优先级顺序,将每个引用存入预先构建的字典数据结构的字典数组中;对存有引用的字典数组应用字典键值查询方式或者字典遍历方式,得到嵌套型数据对应的合并数据。进一步的,上述按照字典数据的优先级顺序,将每个引用存入预先构建的字典数据结构的字典数组中的步骤包括:按照字典数据的优先级从低到高的顺序,将每个引用逐一存入预先构建的字典数据结构的字典数组中。进一步的,上述对存有引用的字典数组应用字典键值查询方式,得到嵌套型数据对应的合并数据的步骤,包括:将每个字典数据包括的键逐一作为当前键,对每个当前键均执行以下步骤:按照每个引用在字典数组中的前后顺序,从引用对应的数据中查找到当前键对应的键值;根据每个键及其对应的键值,生成嵌套型数据对应的合并数据。进一步的,上述按照每个引用在字典数组中的前后顺序,从引用对应的数据中查找到当前键对应的键值的步骤,包括:判断当前键是否存在于当前遍历的引用对应的数据中,以及判断当前键对应的键值是否是字典;如果当前键存在于当前遍历的引用对应的数据中,且当前键对应的键值不是字典,将键值确定为当前键的键值;如果当前键存在于当前遍历的引用对应的数据中,且当前键对应的键值是字典,将当前键对应的字典添加至临时数据缓存结构中,继续遍历剩余引用对应的数据,直至所有引用遍历完成,将临时数据缓存结构中的字典,作为当前键对应的键值。进一步的,上述根据每个键及其对应的键值,生成嵌套型数据对应的合并数据的步骤,还包括:针对每个键对应的键值,执行以下筛选步骤:判断键对应的键值中是否包括多个字典,且多个字典中包含有相同的键;如果是,保留多个字典中键所属的字典对应的字典数据的优先级最高的键及其键值;将筛选步骤后的键及其对应的键值进行合并,得到嵌套型数据对应的合并数据。进一步的,上述字典数据结构还包括:删除键集合;其中,删除键集合保存有已删除的键;判断当前键是否存在于当前遍历的引用对应的数据中的步骤之前,还包括:判断当前键是否存在于删除键集合中;如果不存在,执行判断当前键是否存在于当前遍历的引用对应的数据中的步骤。进一步的,上述方法还包括:判断字典数据结构中的自定义字典是否存在;如果存在,将临时数据缓存结构中的字典设置到字典数组末尾的自定义字典中;如果不存在,在字典数组的末尾创建新的自定义字典,以存放临时数据缓存结构中的字典。进一步的,上述方法还包括:将待删除的键加入删除键集合;判断字典数据结构中的自定义字典是否存在;如果存在,删除自定义字典中的待删除的键。进一步的,上述对存有引用的字典数组应用字典遍历方式,得到嵌套型数据对应的合并数据的步骤,包括:在字典数据结构中生成一个迭代器对象,遍历字典数组中每个引用对应的数据;针对每个引用对应的数据,均执行以下步骤:判断当前遍历的引用对应的数据中的键是否存在于已用键集合中;如果是,遍历引用对应的数据中的下一个键;如果否,将当前遍历的键添加至已用键集合中,并使用字典键值查询方式,得到当前遍历的键对应的键值;基于遍历完成后每个键及其对应的键值,生成嵌套型数据对应的合并数据。本专利技术实施例还提供一种嵌套型数据的合并装置,嵌套型数据包含多个字典数据,字典数据包括引用和引用对应的数据,引用对应的数据包括至少一个键值对,键值对包括键和键值;该装置包括:引用获取模块,用于获取嵌套型数据中的每个字典数据对应的引用;引用存入模块,用于按照字典数据的优先级顺序,将每个引用存入预先构建的字典数据结构的字典数组中;合并数据获取模块,用于对存有引用的字典数组应用字典键值查询方式或者字典遍历方式,得到嵌套型数据对应的合并数据。本专利技术实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的计算机可执行指令,处理器执行计算机可执行指令以实现上述嵌套型数据的合并方法。本专利技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述嵌套型数据的合并方法。本专利技术实施例提供的嵌套型数据的合并方法中,嵌套型数据包含多个字典数据,每个字典数据包括引用和引用对应的数据,引用对应的数据包括至少一个键值对,键值对包括键和键值。首先获取嵌套型数据中的每个字典数据对应的引用,然后按照字典数据的优先级顺序,将每个引用存入预先构建的字典数据结构的字典数组中,最后对存有引用的字典数组应用字典键值查询方式或者字典遍历方式,得到嵌套型数据对应的合并数据。本专利技术可以通过在字典数组中存储嵌套型数据中的多个字典数据的引用的方式,大大降低内存开销,且在合并数据的过程中没有用到现有的深拷贝过程,因此,在嵌套型数据合并的过程中可以极大地提升合并效率,减少性能开销。附图说明为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种嵌套型数据的合并方法的流程图;图2为本专利技术实施例提供的另一种嵌套型数据的合并方法流程图;图3为本专利技术实施例提供的一种嵌套型数据的合并方法中键值查询过程的示意图;图4为本专利技术实施例提供的一种嵌套型数据的合并方法中键值设置过程的示意图;图5为本专利技术实施例提供的一种嵌套型数据的合并方法中删除键过程的示意图;图6为本专利技术实施例提供的一种嵌套型数据的合并方法中遍历过程的示意图;图7为本专利技术实施例提供的一种嵌套型数据的合并方法中字典数据结构的示意图;图8为本专利技术实施例提供的一种嵌套型数据的合并装置的结构示意图;图9为本发本文档来自技高网...

【技术保护点】
1.一种嵌套型数据的合并方法,所述嵌套型数据包含多个字典数据,所述字典数据包括引用和所述引用对应的数据,所述引用对应的数据包括至少一个键值对,所述键值对包括键和键值;其特征在于,所述方法包括:/n获取所述嵌套型数据中的每个字典数据对应的引用;/n按照字典数据的优先级顺序,将每个所述引用存入预先构建的字典数据结构的字典数组中;/n对存有所述引用的字典数组应用字典键值查询方式或者字典遍历方式,得到所述嵌套型数据对应的合并数据。/n

【技术特征摘要】
1.一种嵌套型数据的合并方法,所述嵌套型数据包含多个字典数据,所述字典数据包括引用和所述引用对应的数据,所述引用对应的数据包括至少一个键值对,所述键值对包括键和键值;其特征在于,所述方法包括:
获取所述嵌套型数据中的每个字典数据对应的引用;
按照字典数据的优先级顺序,将每个所述引用存入预先构建的字典数据结构的字典数组中;
对存有所述引用的字典数组应用字典键值查询方式或者字典遍历方式,得到所述嵌套型数据对应的合并数据。


2.根据权利要求1所述的方法,其特征在于,按照字典数据的优先级顺序,将每个所述引用存入预先构建的字典数据结构的字典数组中的步骤包括:
按照字典数据的优先级从低到高的顺序,将每个所述引用逐一存入预先构建的字典数据结构的字典数组中。


3.根据权利要求1所述的方法,其特征在于,对存有所述引用的字典数组应用字典键值查询方式,得到所述嵌套型数据对应的合并数据的步骤,包括:
将每个所述字典数据包括的键逐一作为当前键,对每个所述当前键均执行以下步骤:按照每个引用在所述字典数组中的前后顺序,从所述引用对应的数据中查找到所述当前键对应的键值;
根据每个所述键及其对应的键值,生成所述嵌套型数据对应的合并数据。


4.根据权利要求3所述的方法,其特征在于,按照每个引用在所述字典数组中的前后顺序,从所述引用对应的数据中查找到所述当前键对应的键值的步骤,包括:
判断所述当前键是否存在于当前遍历的引用对应的数据中,以及判断所述当前键对应的键值是否是字典;
如果所述当前键存在于当前遍历的引用对应的数据中,且所述当前键对应的键值不是字典,将所述键值确定为所述当前键的键值;
如果所述当前键存在于当前遍历的引用对应的数据中,且所述当前键对应的键值是字典,将所述当前键对应的字典添加至临时数据缓存结构中,继续遍历剩余引用对应的数据,直至所有引用遍历完成,将所述临时数据缓存结构中的字典,作为所述当前键对应的键值。


5.根据权利要求4所述的方法,其特征在于,根据每个所述键及其对应的键值,生成所述嵌套型数据对应的合并数据的步骤,还包括:
针对每个所述键对应的键值,执行以下筛选步骤:
判断所述键对应的键值中是否包括多个字典,且多个所述字典中包含有相同的键;如果是,保留多个字典中键所属的字典对应的字典数据的优先级最高的键及其键值;
将所述筛选步骤后的键及其对应的键值进行合并,得到所述嵌套型数据对应的合并数据。


6.根据权利要求4所述的方法,其特征在于,所述字典数据结构还包括:删除键集合;其中,所述删除键集合保存...

【专利技术属性】
技术研发人员:杨之江
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1