当前位置: 首页 > 专利查询>四川大学专利>正文

一种高效JSON文件格式及内容验证方法技术

技术编号:25803418 阅读:16 留言:0更新日期:2020-09-29 18:37
本发明专利技术公开了一种高效JSON文件格式及内容验证方法,包含构建模板树、读取文档、解析键值对、将解析后的结果与结构树匹配四个部分;相对于现有方式来讲,本发明专利技术具有以下优点及有益效果:JSON文档的验证是数据处理中的一个关键步骤。EvsJSON是一种新颖而高效的JSON文档验证方法,现有的方法能够检验JSON文档的结构及内容,但仅限于完整的文档,无法检验拆分后的多个文档;而本发明专利技术对应的JSON格式与内容验证算法,不仅在验证速度上超越现有方法,而且能够对拆分文档进行验证,克服了现有方法所遇到的困难。

【技术实现步骤摘要】
一种高效JSON文件格式及内容验证方法
本专利技术涉及数据解析、文件格式及内容验证相关领域,具体来讲涉及的是一种高效JSON文件格式及内容验证方法。
技术介绍
众所周知,JSON是最流行的数据发布和交换格式之一。在实际的应用程序场景中,由于数据库字段长度的限制,如果一个JSON文档太长,那么只能将它分割成多个文档后再存入数据库。在这种情况下,需要对文档的完整性和准确性进行验证。然而,JSON作为一种轻量级且易于使用的半结构化模型,能够灵活地组织和记录数组等数据,所以经常用于交换数据。例如,从客户端到数据库,JSON数据在C/S系统上的一般传输情况如图1所示。首先,用户将数据输入表单。然后客户端接收数据并将其封装为JSON格式(即JSON文档)。所有文档在存储到数据库之前都必须经过验证。然而,由于数据库中字段长度的限制,长文档会被分成多个文档,这给数据验证带来了挑战。现有的JSON工具包在验证JSON格式时包含两个阶段,解析JSON文档和预定义JSON模式,分别获得对应的JSON对象和模式对象。通过预定义的JSON模式,可以限制JSON文档的结构,并检查其完整性。通过将JSON对象与模式对象进行比较,可以验证JSON文档的格式。但是,上述工具包无法验证从一个长JSON文档分离出来的多个JSON文档。
技术实现思路
因此,为了解决上述不足,本专利技术在此提供一种高效JSON文件格式及内容验证方法;不仅在验证速度上超越现有方法,而且能够对拆分文档进行验证,克服了现有方法所遇到的困难。r>本专利技术是这样实现的,构造一种高效JSON文件格式及内容验证方法,实施时先构建客户端、服务器和数据库三部分;用户通过客户端输入表单信息,之后传输至服务器,由服务器实现验证,然后将验证的文档存储至数据库;其特征在于;服务器通过以下方式实现验证,包含以下四个执行部分,每个部分的具体执行如下:步骤1,构建树;JSON模板是预定义的,它包含一批键与每个键对应的值的数据类型,并在特定的嵌套结构中组织所有键;根据其嵌套结构,将模板转换为一个名为JSON模板树的树结构,其中每个节点表示JSON模板中的一个键值对,树中的每个层对应于JSON模板的嵌套结构中的一个层;步骤2,读取文档;如果文档太长,则须将一个完整的JSON文档拆分为多个JSON文档。在此步骤中,通过流数据读入的方式,使用读取器读取JSON文档,在每个完整文档的末尾添加一个特定的结束符号(如EOF),以此检查每个文档的完整性。对于从大型文档中分离出来的文档,最后都能够通过合并成为原来的文档。步骤3,解析键值对;节点列表是基于模板树创建的,它存储了每个节点本身及其父节点和子节点的信息,通过前序遍历得到一个包含所有树节点的空节点列表L;根据列表,从文档中解析并提取每个节点对应的值;JSON模板中所有键值对的信息都存储在节点列表中;步骤4,将解析后的结果与模板树匹配;在此阶段,将通过以下三个条件检查每个JSON文档,如果满足任意条件,则将其视为无效文档:(1)L中的任意键未出现在JSON文档中;(2)与键对应的值的数据类型不正确;(3)JSON文档中键的结构不符合L的顺序;在验证过程中,将从L中取出每个节点,如果此节点及其所有子节点均被验证为有效,则将其从列表中删除,这样可以在处理大型文档时节省大量的存储空间。此外,一旦某一节点未通过验证,将判定该文档为无效文档,而不检查其余节点从而提升验证效率。如果需要的话,该方法能够找到所有不匹配的节点。本专利技术具有如下优点:JSON文档的验证是数据处理中的一个关键步骤;在本文中,介绍了EvsJSON,这是一种新颖而高效的JSON文档验证方法,尤其是从长文档中分离出来的内容连贯的JSON文档。在实际数据集上的实验表明,EvsJSON在效率上优于其他常用的JSON文档验证方法。而且,在现实生活中有许多网站或平台提供信息录入或是上传功能,特别是某些领域(如生物信息、材料等)需要通过专业平台上传大量的实验数据,这些数据在转换成JSON格式后,经过服务器的传输最终存入数据库中。同时,由于数据库对于存入字段长度有限制,如果单次存入数据过大,需要将数据进行拆分后再分别存入数据库。为确保存入数据的质量,在存入数据库之前需要对上传的数据进行检验。现有的方法能够检验JSON文档的结构及内容,但仅限于完整的文档,无法检验拆分后的多个文档。本专利技术是一种全新的JSON格式与内容验证算法,不仅在验证速度上超越现有方法,而且能够对拆分文档进行验证,克服了现有方法所遇到的困难。附图说明图1JSON数据从客户端传输到数据库示意图;图2是本专利技术涉及的结构框架示意图。具体实施方式下面将结合附图1-图2对本专利技术进行详细说明,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术通过改进在此提供一种高效JSON文件格式及内容验证方法,EvsJSON的框架如图2(a)所示;EvsJSON包含四个部分,每个部分的详细执行如下:步骤1,构建树;JSON模板是预定义的,它包含一批键与每个键对应的值的数据类型,并在特定的嵌套结构中组织所有键;根据其嵌套结构,将模板转换为一个名为JSON模板树的树结构,其中每个节点表示JSON模板中的一个键值对,树中的每个层对应于JSON模板的嵌套结构中的一个层;图2(b)给出了基于图1中的JSON模板的JSON模板树。步骤2,读取文档;如果文档太长,则须将一个完整的JSON文档拆分为多个JSON文档。在此步骤中,通过流数据读入的方式,使用读取器读取JSON文档,在每个完整文档的末尾添加一个特定的结束符号(如EOF),以此检查每个文档的完整性。对于从大型文档中分离出来的文档,最后都能够通过合并成为原来的文档。步骤3,解析键值对;节点列表是基于模板树创建的,它存储了每个节点本身及其父节点和子节点的信息,通过前序遍历得到一个包含所有树节点的空节点列表L;根据列表,从文档中解析并提取每个节点对应的值;JSON模板中所有键值对的信息都存储在节点列表中;图2(c)中给出的节点列表是通过对图2(b)中的JSON模板树进行预排序得到的。步骤4,将解析后的结果与模板树匹配;在此阶段,将通过以下三个条件下检查每个JSON文档,如果满足任意条件,则将其视为无效文档:(1)L中的任意键未出现在JSON文档中;(2)与键对应的值的数据类型不正确;(3)JSON文档中键的结构不符合L的顺序;在验证过程中,将从L中取出每个节点,如果此节点及其所有子节点均被验证为有效,则将其从列表中删除,这样可以在处理大型文档时节省大量的存储空间。此外,一旦某一节点未通过验证,将判定该文档为无效文档,而不检查其余节点从而提升验证效率。如果需要的话,该方法能够找到所有不匹配的节点。本文档来自技高网...

【技术保护点】
1.一种高效JSON文件格式及内容验证方法,实施时先构建客户端、服务器和数据库三部分;用户通过客户端输入表单信息,之后传输至服务器,由服务器实现验证,然后将验证的文档存储至数据库;其特征在于;服务器通过以下方式实现验证,包含以下四个执行部分,每个部分的具体执行如下:/n步骤1,构建树;JSON模板是预定义的,包含一批键与每个键对应的值的数据类型,并在特定的嵌套结构中组织所有键;根据其嵌套结构,将模板转换为一个名为JSON模板树的树结构,其中每个节点表示JSON模板中的一个键值对,树中的每个层对应于JSON模板的嵌套结构中的一个层;/n步骤2,读取文档;如果文档太长,则须将一个完整的JSON文档拆分为多个JSON文档;在此步骤中,通过流数据读入的方式,使用读取器读取JSON文档,在每个完整文档的末尾添加一个特定的结束符号(如EOF),以此检查每个文档的完整性;对于从大型文档中分离出来的文档,最后都能够通过合并成为原来的文档;/n步骤3,解析键值对;节点列表是基于模板树创建的,它存储了每个节点本身及其父节点和子节点的信息,通过前序遍历得到一个包含所有树节点的空节点列表L;根据列表,从文档中解析并提取每个节点对应的值;JSON模板中所有键值对的信息都存储在节点列表中;/n步骤4,将解析后的结果与模板树匹配;在此阶段,将通过以下三个条件检查每个JSON文档,如果满足任意条件,则将其视为无效文档:/n(1)L中的任意键未出现在JSON文档中;/n(2)与键对应的值的数据类型不正确;/n(3)JSON文档中键的结构不符合L的顺序;/n在验证过程中,将从L中取出每个节点,如果此节点及其所有子节点均被验证为有效,则将其从列表中删除,这样可以在处理大型文档时节省大量的存储空间;此外,一旦某一节点未通过验证,将判定该文档为无效文档,而不检查其余节点从而提升验证效率;如果需要的话,该方法能够找到所有不匹配的节点。/n...

【技术特征摘要】
1.一种高效JSON文件格式及内容验证方法,实施时先构建客户端、服务器和数据库三部分;用户通过客户端输入表单信息,之后传输至服务器,由服务器实现验证,然后将验证的文档存储至数据库;其特征在于;服务器通过以下方式实现验证,包含以下四个执行部分,每个部分的具体执行如下:
步骤1,构建树;JSON模板是预定义的,包含一批键与每个键对应的值的数据类型,并在特定的嵌套结构中组织所有键;根据其嵌套结构,将模板转换为一个名为JSON模板树的树结构,其中每个节点表示JSON模板中的一个键值对,树中的每个层对应于JSON模板的嵌套结构中的一个层;
步骤2,读取文档;如果文档太长,则须将一个完整的JSON文档拆分为多个JSON文档;在此步骤中,通过流数据读入的方式,使用读取器读取JSON文档,在每个完整文档的末尾添加一个特定的结束符号(如EOF),以此检查每个文档的完整性;对于从大型文档中分离出来的文档,最后都能够通过合...

【专利技术属性】
技术研发人员:左劼段磊何邦君谢贵才陈子豪
申请(专利权)人:四川大学
类型:发明
国别省市:四川;51

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

1