一种Json数据的存储方法及装置的制造方法

文档序号:9839658阅读:383来源:国知局
一种Json数据的存储方法及装置的制造方法
【技术领域】
[0001]本申请涉及数据存储技术,特别涉及一种Json数据的存储方法及装置。
【背景技术】
[0002]本申请涉及应用程序处理领域,尤其涉及在内存比较紧张的嵌入式系统中,基于Json存储较大信息量的配置或数据摘要的方法及系统。
[0003]现有技术下,Json作为一种数据存储的结构得到了广泛的应用,Json是一种比较灵活而且直观的数据存储结构,它具有良好的兼容性和可扩展性,很适合作为客户端与设备端之间的交互载体。
[0004]Json以字符串的形式进行数据存储,对存储的数据加入描述,在设备开发和调试阶段有很好的直观性。具体的,Json数据通常以数据表的形式存在,Json数据表主要有key和value两个属性值,key是一个字符串,用于标识键值对的名称,value为对应的数值。在存储大量的配置信息时,Json首先将数据按照key-value键值对的形式进行序列化,进而为每一个键值对动态申请内存,并把相应的数据通过关系链的形式存放到这段内存中。如果需要存储的数据量很大时,Json会申请大量的内存并将序列后的数据长时间存放在这片内存中。
[0005]显然,以Json结构进行数据存储,需要大数量节点进行配置,这会占用较大的内存,使得本来内存比较小的嵌入式系统内存资源更加显得紧凑;另一方面,Json数据表具有很强的扩展性,能够随时进行添加、修改等操作,但对大型的Json表增删查找只会涉及小面积范围数据的变更,如果整个Json表长时间驻存在内存中会导致大量内存的浪费。
[0006]现有Json的模块化技术大多应用在前端web或者内存比较充足的平台上,而且模块数据的解析依赖功能模块,不适合嵌入式系统的应用场景,也不利于跨平台的使用;此夕卜,现有的Json模块化技术要求模块中的数据必须为一个完整的Json表,不适合包含大数量节点的Json表的存储和处理。
[0007]因此,为了在嵌入式系统中实现Json数据在存储,同时也兼容Json数据对内存消耗过大的缺陷,需要对Json数据的存储机制进行改进,保证Json数据在运行过程中不会因为节点的扩充导致内存无限增大。

【发明内容】

[0008]本申请实施例提供一种Json数据的存储方法及装置,用以在内存不充足的环境中,实现Json数据的顺利存储。
[0009]本申请实施例提供的具体技术方案如下:
[0010]一种Json数据存储方法,包括:
[0011 ]将Json数据表按照设定的路径深度N分割为若干Json数据信息;
[0012]分别提取每一个Json数据信息的关键信息生成相应的Json摘要信息;
[0013]分别针对每一个Json数据信息和相应的Json摘要信息生成相应的关系索引信息;
[0014]将各个Json数据信息、Json摘要信息和关系索引信息通过内存映射至指定存储区域中保存。
[0015]较佳的,将Json数据表按照设定的路径深度N分割为若干Json数据信息后,在分别针对每一个Json数据信息和相应的Json摘要信息生成相应的关系索引信息之前,进一步包括:
[0016]针对每一个占用内存数据量超过预设数据量阈值的Json数据信息,再次分割为若干个Json数据信息,其中再次划分后的每一个Json数据信息所占用内存数据量不大于所述预设数据量阈值。
[0017]较佳的,将各个Json数据信息、Json摘要信息和关系索引信息通过内存映射至指定存储区域中保存,包括:
[0018]在内存中创建内存交换区,以及在内存交换区和指定的存储区域之间建立映射关系;
[0019]将Json数据表分割后获得的各个Json数据信息、Json摘要信息和关系索引信息的总占用内存数据量大小缓存在内存交换区中;
[0020]基于所述述映射关系,将Json数据表分割后获得的各个Json数据信息、Json摘要信息和关系索引信息,经内存交换区映射至指定存储区域内的空闲区域中。
[0021]较佳的,基于所述述映射关系,将Json数据表分割后获得的各个Json数据信息、Json摘要信息和关系索引信息,经内存交换区映射至指定存储区域内的空闲区域中,包括:[0022 ]可以根据各个Json数据信息、J son摘要信息和关系索引信息的总占用内存数据量判断所述指定存储区域中是否存在相应大小的空闲区域,若是,则基于所述映射关系进行映射,否则,先在所述指定存储区域中创建相应大小的空闲区域后,再基于所述映射关系进行映射。
[0023]较佳的,进一步包括:
[0024]在内存或不同于所述指定存储区域的其他存储介质中记录各个关系索引信息的索引配置信息。
[0025]较佳的,进一步包括:
[0026]接收到针对任一Json数据信息的更新指令时,读取所述索引配置信息;
[0027]基于所述索引配置信息在所述指定存储区域中读取所述任一Json数据信息对应的关系索引ig息;
[0028]基于读取的关系索引信息,在所述指定存储区域中获取所述任一Json数据信息对应的Json摘要信息,再基于获取的Json摘要信息定位所述任一 Json数据信息;
[0029]根据所述更新指令对所述任一Json数据信息进行数据更新,以及对相应的Json摘要信息和关系索引信息进行适应性更新;
[0030]将更新后的所述任一Json数据信息及相应的Json摘要信息和关系索引信息,进行所述指定存储区域中重新进行保存。
[0031]一种Json数据存储装置,包括:
[0032]分割模块,用于将Json数据表按照设定的路径深度N分割为若干Json数据信息;
[0033]第一处理模块,用于分别提取每一个Json数据信息的关键信息生成相应的Json摘要信息;
[0034]第二处理模块,用于分别针对每一个Json数据信息和相应的Json摘要信息生成相应的关系索引ig息;
[0035]映射模块,用于将各个Json数据信息、Json摘要信息和关系索引信息通过内存映射至指定存储区域中保存。
[0036]较佳的,所述分割单元将Json数据表按照设定的路径深度N分割为若干Json数据信息后,在所述第二处理模块在分别针对每一个Json数据信息和相应的Json摘要信息生成相应的关系索引信息之前,所述分割单元进一步用于:
[0037]针对每一个占用内存数据量超过预设数据量阈值的Json数据信息,再次分割为若干个Json数据信息,其中再次划分后的每一个Json数据信息所占用内存数据量不大于所述预设数据量阈值。
[0038]较佳的,将各个Json数据信息、Json摘要信息和关系索引信息通过内存映射至指定存储区域中保存时,所述映射单元用于:
[0039]在内存中创建内存交换区,以及在内存交换区和指定的存储区域之间建立映射关系;
[0040]将Json数据表分割后获得的各个Json数据信息、Json摘要信息和关系索引信息的总占用内存数据量大小缓存在内存交换区中;
[0041 ]基于所述述映射关系,将Json数据表分割后获得的各个Json数据信息、Json摘要信息和关系索引信息,经内存交换区映射至指定存储区域内的空闲区域中。
[0042]较佳的,基于所述述映射关系,将Js
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1