CN111723552B - 一种高效json文件格式及内容验证方法 - Google Patents
一种高效json文件格式及内容验证方法 Download PDFInfo
- Publication number
- CN111723552B CN111723552B CN202010569438.7A CN202010569438A CN111723552B CN 111723552 B CN111723552 B CN 111723552B CN 202010569438 A CN202010569438 A CN 202010569438A CN 111723552 B CN111723552 B CN 111723552B
- Authority
- CN
- China
- Prior art keywords
- json
- document
- node
- template
- documents
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
- G06F40/154—Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种高效JSON文件格式及内容验证方法,包含构建模板树、读取文档、解析键值对、将解析后的结果与结构树匹配四个部分;相对于现有方式来讲,本发明具有以下优点及有益效果:JSON文档的验证是数据处理中的一个关键步骤。EvsJSON是一种新颖而高效的JSON文档验证方法,现有的方法能够检验JSON文档的结构及内容,但仅限于完整的文档,无法检验拆分后的多个文档;而本发明对应的JSON格式与内容验证算法,不仅在验证速度上超越现有方法,而且能够对拆分文档进行验证,克服了现有方法所遇到的困难。
Description
技术领域
本发明涉及数据解析、文件格式及内容验证相关领域,具体来讲涉及的是一种高效JSON文件格式及内容验证方法。
背景技术
众所周知,JSON是最流行的数据发布和交换格式之一。在实际的应用程序场景中,由于数据库字段长度的限制,如果一个JSON文档太长,那么只能将它分割成多个文档后再存入数据库。在这种情况下,需要对文档的完整性和准确性进行验证。
然而,JSON作为一种轻量级且易于使用的半结构化模型,能够灵活地组织和记录数组等数据,所以经常用于交换数据。例如,从客户端到数据库,JSON数据在C/S系统上的一般传输情况如图1所示。首先,用户将数据输入表单。然后客户端接收数据并将其封装为JSON格式(即JSON文档)。所有文档在存储到数据库之前都必须经过验证。然而,由于数据库中字段长度的限制,长文档会被分成多个文档,这给数据验证带来了挑战。
现有的JSON工具包在验证JSON格式时包含两个阶段,解析JSON文档和预定义JSON模式,分别获得对应的JSON对象和模式对象。通过预定义的JSON模式,可以限制JSON文档的结构,并检查其完整性。通过将JSON对象与模式对象进行比较,可以验证JSON文档的格式。但是,上述工具包无法验证从一个长JSON文档分离出来的多个JSON文档。
发明内容
因此,为了解决上述不足,本发明在此提供一种高效JSON文件格式及内容验证方法;不仅在验证速度上超越现有方法,而且能够对拆分文档进行验证,克服了现有方法所遇到的困难。
本发明是这样实现的,构造一种高效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格式与内容验证算法,不仅在验证速度上超越现有方法,而且能够对拆分文档进行验证,克服了现有方法所遇到的困难。
附图说明
图1 JSON数据从客户端传输到数据库示意图;
图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中取出每个节点,如果此节点及其所有子节点均被验证为有效,则将其从列表中删除,这样可以在处理大型文档时节省大量的存储空间。此外,一旦某一节点未通过验证,将判定该文档为无效文档,而不检查其余节点从而提升验证效率。如果需要的话,该方法能够找到所有不匹配的节点。
本发明具有以优点及有益效果:JSON文档的验证是数据处理中的一个关键步骤。在本文中,介绍了EvsJSON,这是一种新颖而高效的JSON文档验证方法,尤其是从长文档中分离出来的JSON文档。在实际数据集上的实验表明,EvsJSON在效率上优于其他常用的JSON文档验证方法。
上述高效JSON文件格式及内容验证方法实现时先构建客户端、服务器和数据库三部分,以此形成对应的系统平台;用户通过客户端输入表单信息,之后传输至服务器,由服务器通过上述步骤实现验证,然后将验证的文档存储至数据库。
应用场景:在现实生活中有许多网站或平台提供信息录入或是上传功能,特别是某些领域(如生物信息、材料等)需要通过专业平台上传大量的实验数据,这些数据在转换成JSON格式后,经过服务器的传输最终存入数据库中。同时,由于数据库对于存入字段长度有限制,如果单次存入数据过大,需要将数据进行拆分后再分别存入数据库。为确保存入数据的质量,在存入数据库之前需要对上传的数据进行检验。现有的方法能够检验JSON文档的结构及内容,但仅限于完整的文档,无法检验拆分后的多个文档。本发明是一种全新的JSON格式与内容验证算法,不仅在验证速度上超越现有方法,而且能够对拆分文档进行验证,克服了现有方法所遇到的困难。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (1)
1.一种高效JSON文件格式及内容验证方法,实施时先构建客户端、服务器和数据库三部分;用户通过客户端输入表单信息,之后传输至服务器,由服务器实现验证,然后将验证的文档存储至数据库;其特征在于;服务器通过以下方式实现验证,包含以下四个执行部分,每个部分的具体执行如下:
步骤1,构建树;JSON模板是预定义的,包含一批键与每个键对应的值的数据类型,并在特定的嵌套结构中组织所有键;根据其嵌套结构,将模板转换为一个名为JSON模板树的树结构,其中每个节点表示JSON模板中的一个键值对,树中的每个层对应于JSON模板的嵌套结构中的一个层;
步骤2,读取文档;如果文档太长,则须将一个完整的JSON文档拆分为多个JSON文档;在此步骤中,通过流数据读入的方式,使用读取器读取JSON文档,在每个完整文档的末尾添加一个特定的结束符号,以此检查每个文档的完整性;对于从大型文档中分离出来的文档,最后都能够通过合并成为原来的文档;
步骤3,解析键值对;节点列表是基于模板树创建的,它存储了每个节点本身及其父节点和子节点的信息,通过前序遍历得到一个包含所有树节点的空节点列表L;根据列表,从文档中解析并提取每个节点对应的值;JSON模板中所有键值对的信息都存储在节点列表中;
步骤4,将解析后的结果与模板树匹配;在此阶段,将通过以下三个条件检查每个JSON文档,如果满足任意条件,则将其视为无效文档:
(1)L中的任意键未出现在JSON文档中;
(2)与键对应的值的数据类型不正确;
(3)JSON文档中键的结构不符合L的顺序;
在验证过程中,将从L中取出每个节点,如果此节点及其所有子节点均被验证为有效,则将其从列表中删除,这样可以在处理大型文档时节省大量的存储空间;此外,一旦某一节点未通过验证,将判定该文档为无效文档,而不检查其余节点从而提升验证效率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010569438.7A CN111723552B (zh) | 2020-06-20 | 2020-06-20 | 一种高效json文件格式及内容验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010569438.7A CN111723552B (zh) | 2020-06-20 | 2020-06-20 | 一种高效json文件格式及内容验证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111723552A CN111723552A (zh) | 2020-09-29 |
CN111723552B true CN111723552B (zh) | 2023-03-21 |
Family
ID=72569142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010569438.7A Active CN111723552B (zh) | 2020-06-20 | 2020-06-20 | 一种高效json文件格式及内容验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111723552B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017168129A1 (en) * | 2016-03-30 | 2017-10-05 | Consoli Limited | Object model generation |
CN110149353A (zh) * | 2018-02-11 | 2019-08-20 | 陕西爱尚物联科技有限公司 | 一种物联网方法及其系统 |
CN110263104A (zh) * | 2019-05-14 | 2019-09-20 | 阿里巴巴集团控股有限公司 | Json字符串处理方法及装置 |
CN110618983A (zh) * | 2019-08-15 | 2019-12-27 | 复旦大学 | 基于json文档结构的工业大数据多维分析与可视化方法 |
CN111145745A (zh) * | 2019-12-27 | 2020-05-12 | 苏州思必驰信息科技有限公司 | 对话流程定制方法及装置 |
-
2020
- 2020-06-20 CN CN202010569438.7A patent/CN111723552B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017168129A1 (en) * | 2016-03-30 | 2017-10-05 | Consoli Limited | Object model generation |
CN110149353A (zh) * | 2018-02-11 | 2019-08-20 | 陕西爱尚物联科技有限公司 | 一种物联网方法及其系统 |
CN110263104A (zh) * | 2019-05-14 | 2019-09-20 | 阿里巴巴集团控股有限公司 | Json字符串处理方法及装置 |
CN110618983A (zh) * | 2019-08-15 | 2019-12-27 | 复旦大学 | 基于json文档结构的工业大数据多维分析与可视化方法 |
CN111145745A (zh) * | 2019-12-27 | 2020-05-12 | 苏州思必驰信息科技有限公司 | 对话流程定制方法及装置 |
Non-Patent Citations (4)
Title |
---|
Bangjun He 等.EvsJSON : An Efficient Validator for Split JSON Documents.2020,第775-779页. * |
Olga Kononova 等.Text-mined dataset of inorganic materials synthesis recipes.2019,第1-11页. * |
刘立成 等.面向NoSQL数据库的JSON文档异常检测与语义消歧模型.2021,第48卷(第48期),第93-99页. * |
邢玉艳 ; 刘耀 ; 刘茹 ; .基于schema的信息安全标准资源解析研究.2019,(第05期),第108-118页. * |
Also Published As
Publication number | Publication date |
---|---|
CN111723552A (zh) | 2020-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5690349B2 (ja) | レコード形式情報の管理 | |
JP4716709B2 (ja) | 構造化文書処理装置、構造化文書処理方法、及びプログラム | |
US9069840B2 (en) | Matching data from disparate sources | |
JP2001167087A (ja) | 構造化文書検索装置,構造化文書検索方法,構造化文書検索用プログラム記録媒体および構造化文書検索用インデックス作成方法 | |
KR20030011220A (ko) | 데이터 소트 방법, 데이터 소트 장치 및 데이터 소트프로그램 | |
CN110059085B (zh) | 一种面向Web 2.0的JSON数据解析与建模方法 | |
CN111752542B (zh) | 基于xml模板的数据库查询接口引擎 | |
CN114090671A (zh) | 数据导入方法、装置、电子设备及存储介质 | |
CN111464515A (zh) | 一种数据转换方法、装置、设备及存储介质 | |
CN111723552B (zh) | 一种高效json文件格式及内容验证方法 | |
CN112632948B (zh) | 案件文书排序方法及相关设备 | |
US10956659B1 (en) | System for generating templates from webpages | |
CN106933844B (zh) | 面向大规模rdf数据的可达性查询索引的构建方法 | |
CN113553847A (zh) | 用于对地址文本进行解析的方法、装置、系统和存储介质 | |
CN116703319A (zh) | 一种基于工艺流程的ebom到pbom的映射方法 | |
CN116302089A (zh) | 基于图片相似度的代码克隆检测方法、系统及存储介质 | |
US10229105B1 (en) | Mobile log data parsing | |
CN110704635A (zh) | 一种知识图谱中三元组数据的转换方法及装置 | |
CN113268247B (zh) | 一种基于状态机的hl7消息解析方法 | |
Feng | Mapping geospatial metadata to open provenance model | |
CN103902514A (zh) | 一种Word格式提取及再利用方法 | |
CN101261632A (zh) | 一种基于HTML文法树的FrontPage操作阅卷方法 | |
CN110543622A (zh) | 文本相似度检测方法、装置、电子设备及可读存储介质 | |
CN116502140B (zh) | 一种基于控制流图相似性的加密算法识别方法及装置 | |
CN116033048B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |