JSON Schema 指南

JSON 架构

在我们进入 JSON Schema 之前,了解 JSON 和 JSON Schema 之间的区别很重要。

JSON

JSON 是 JavaScript Object Notation 的缩写,它是一种独立于语言的数据格式,API 用来发送请求和回答。 JSON 对于人和机器来说都易于读写。 JSON 是一种基于文本的格式,不受语言限制(语言无关)。

JSON 架构

JSON Schema 是验证 JSON 数据结构的有用工具。 要指定 JSON 的结构,请使用基于 JSON 的格式。 其目的是确保 JSON 数据是可接受的。 我们应用程序的 JSON 数据的约定可以使用模式定义。

JSON Schema 规范分为三个主要部分:

JSON 超模式:

JSON Hyper-Schema 是一种 JSON Schema 语言,可用于通过超链接和指令标记 JSON 文档,以通过基于文本的环境(如 HTTP)处理和更改外部 JSON 资源。 点击 点击此处 了解有关 JSON Hyper-Schema 的更多信息。

JSON 架构核心:

它是一组用于标记和验证 JSON 文档的规则。 

JSON 架构核心:

  • 描述您当前拥有的数据格式。 
  • 验证可用于自动化测试的数据。 
  • 确保客户提供的数据的准确性。  
  • 为人类和机器提供可读文档。 

JSON 模式验证:

基于 JSON Schema 的验证对实例数据的结构施加了限制。 之后,任何具有非断言的关键字 信息,例如描述性元数据和使用指示,被添加到满足所有声明约束的实例位置。 

Newtonsoft 的 JSON Schema Validator 工具是一种可以直接在浏览器中免费使用的工具。 您可以使用此工具来测试 JSON 架构的结构。 此页面包含帮助您入门的控件和说明。 这样,很容易看出如何改进您的 JSON 结构。

我们可以使用 JSON 模式验证工具检查我们的 JSON 对象:

JSON 验证器无错误

如上图所示,我们进行了年龄验证(最小 = 20 和最大 = 40)。 没有发现错误。

JSON 验证器出错

如果年龄验证输入不正确,它会显示错误。

JSON 模式的创建

让我们看一个 JSON Schema 的例子,看看我们在说什么。 描述产品目录的基本 JSON 对象如下:

JSON 示例

它的 JSON Schema 可能写成如下:

JSON 架构结果

JSON Schema 是一个 JSON 文档,该文档必须是一个对象。 关键字是由 JSON Schema 指定的对象成员/属性。 JSON Schema 中的“关键字”是指对象中键/值组合的“键”部分。 大多数情况下,编写 JSON 模式涉及将特定“关键字”映射到对象中的值。 

让我们仔细看看我们在示例中使用的关键字: 

资源架构所遵循的 JSON 架构由该属性记录下来。 这个模式是按照 drafts v4 标准编写的,由“$模式”关键字。 这可以防止您的架构回退到当前版本,该版本可能与旧版本兼容,也可能不兼容。

“”标题“和”描述” 关键字只是解释性的; 它们不会对所检查的数据施加任何限制。 这两个关键字描述了模式的目的:它描述了一个产品。

“”类型” 关键字定义了我们的 JSON 数据的第一个边界条件; 它必须是一个 JSON 对象。 如果我们不为所有模式设置类型,代码将无法运行。 一些常见的类型是“数字”“布尔”“整数”“空”“对象”“数组”“字符串”。

 

以下库支持 JSON Schema:

 

语言

自学资料库

C

WJ元素

蟒蛇

杰森

PHP

Json 架构

JavaScript的

jv

Go

gojson模式

科特林

媒体验证器

红宝石

JSONSchemer

JSON(语法)

让我们简要了解一下 JSON 的基本语法。 JSON 语法是 JavaScript 语法的子集,包括以下元素:

  • 名称/值对用于表示数据。
  • 对象包含在大括号中,每个名称都以“:”(冒号)开头,值对由“,”(逗号)分隔。
  • 值由“,”(逗号)分隔,数组保存在方括号中。
JSON 语法示例

JSON 支持以下两种数据结构:

  • 值的有序列表: 它可以是数组、列表或向量。
  • 名称/值对的集合: 不同的计算机语言支持这种数据结构。

 

JSON(对象)

JSON 模式是一个 JSON 对象,它概述了不同 JSON 对象的类型和结构。 JavaScript 对象表达式可以表示 JavaScript 运行时环境中的 JSON 对象。 一些有效模式对象的例子如下:

架构

火柴

{}

任何值

{类型:'对象'}

一个 JavaScript 对象

{类型:'数字'}

一个 JavaScript 数字

{类型:'字符串'}

一个 JavaScript 字符串

例如:

制作一个空的新对象:

变种 JSON_Obj = {};

新对象创建:

var JSON_Obj = 新对象()

JSON(与 XML 比较)

JSON 和 XML 是独立于语言的人类可读格式。 在现实场景中,它们都可以创建、读取和解码。 基于以下标准,我们可以将 JSON 与 XML 进行比较。

复杂

因为 XML 比 JSON 更复杂,所以程序员更喜欢 JSON。

数组的使用

XML用于表达结构化数据; 然而,XML 不支持数组,但 JSON 支持。

解析

JSON 使用 JavaScript 的 eval 函数进行解释。 与 JSON 一起使用时,eval 返回描述的对象。

 

示例:

 

JSON

XML

{

   “公司”:法拉利,

   “名称”:“GTS”,

   “价格”:404000

}

 

 

法拉利 

 

GTS 

 

404000 

 

JSON 架构的优势

JSON 被设计成一种人类和机器可读的语言。 但是,如果不进行一些微调,两者都不可能。 JSON Schema 的优势在于让机器和人类都更容易理解 JSON。

使用 JSON Schema 还消除了对多个客户端更新的需要。 列出常用的HTML代码,然后在客户端实现是一种典型但不准确的客户端构建方法 API 应用。 但是,这不是最好的策略,因为服务器端的更改可能会导致某些功能出现故障。

JSON Schema 的主要优点是它与多种编程语言的兼容性,以及验证的准确性和一致性。

JSON 模式支持广泛的浏览器和 操作系统,因此用 JSON 编写的应用程序不需要太多努力就可以使它们与所有浏览器兼容。 在开发过程中,开发人员考虑了多种浏览器,尽管 JSON 已经具备这些功能。

JSON 是共享任何大小数据(包括音频、视频和其他媒体)的最有效方式。 这是因为 JSON 将数据存储在数组中,这使得数据传输更容易。 因此,JSON 是在线 API 和开发的最佳文件格式。

随着 API 变得越来越普遍,可以合理地假设 API 验证和测试将变得越来越重要。 随着时间的推移,预计 JSON 不太可能变得更简单也是现实的。 这意味着随着时间的推移,拥有数据模式只会变得更加重要。 因为 JSON 是使用 API 的标准文件格式,所以 JSON Schema 是那些使用 API 的很好的替代品。

谷歌和隐身神话

谷歌和隐身神话

谷歌和隐身神话 1 年 2024 月 XNUMX 日,谷歌同意通过销毁通过隐身模式收集的数十亿数据记录来和解诉讼。

阅读更多»