什么是 JSON
JSON 在前端日常开发中再熟悉不过,往往我们和后端的数据交互都是通过 JSON 来进行传输的。那么具体什么是 JSON 呢?
JSON(JavaScript Object Notation, JS 对象简谱)是一种轻量级的数据交换格式。它基于 ECMAScript(European Computer Manufacturers Association, 欧洲计算机协会制定的 js 规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
简单来说就是:
什么是 JSON Schema
JSON Schema,从字面我们就可以知道,它和 JSON 有紧密的关系。那么具体是什么呢?
JSON Schemais a vocabulary that allows you toannotateandvalidateJSON documents.
JSON Schema 可以称为 JSON 模式,是一个提议的 IETF 标准,它可以用来描述和校验你的 JSON 数据。JSON Schema 定义了一套词汇和规则json字符串转数组,这套词汇和规则用来定义 JSON 元数据,且元数据也是通过 JSON 数据形式表达的。JSON 元数据定义了 JSON 数据需要满足的规范,规范包括成员、结构、类型、约束等。我们可以通过它来校验我们的 JSON 数据是否有效,是否满足规范。它的作用有些类似于 TypeScript 之于 JavaScript。它的主要作用:
JSON Schema 示例
假定我们现在有一个 JSON 数据:
{
"productId": 1,
"productName": "A green door",
"price": 12.50,
"tags": [ "home", "green" ]
}
我们来对应声明一个 JSON Schema 如下:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://example.com/product.schema.json",
"title": "Product",
"description": "A product",
"type": "object",
"properties": {
"productId": {
"description": "The unique identifier for a product",
"type": "integer"
},
"productName": {
"description": "Name of the product",
"type": "string"
},
"price": {
"description": "The price of the product",
"type": "number",
"exclusiveMinimum": 0
},
"tags": {
"description": "Tags for the product",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"uniqueItems": true
}
},
"required": [ "productId", "productName", "price" ]
}
JSON Schema 关键字
先让我们来看下开头的几个关键字:
上面几个关键字是针对 Schema 的一些设置和注释,针对对应的 JSON 数据中每个字段的描述,都在 properties 中,具体每种格式的字段相关的描述,我们稍后具体说明。让我们先看下最后一个关键字 required,它用来描述 JSON 数据中哪些字段是必须的,对应的值必须是数组格式。比如我们在更新文章时,提交的字段中文章 id 会是必须的;上面 JSON 数据中 productId 是必须的。下面让我们具体看下 JSON 数据中不同类型的字段对应的描述关键字都有哪些。JSON 数据中每个字段的描述都对应一个 type,type 对应的基本类型主要包括:
类型描述
string
字符串型,双引号包裹的 Unicode 字符和反斜杠转义字符
number
数字型,包括整型(int)和浮点数型(float)
boolean
布尔型json字符串转数组,true 或 false
object
对象型,无序的键:值对集合
array
数组型,有序的值序列
null
空型
其中,针对类型 string、number、array 和 object 有一些相关的关键字:
小结
本次我们主要是初步了解了 JSON Schema 和 JSON 的关系,以及 JSON Schema 的一些基础内容。JSON Schema 的构成主要依托于一些关键字,以此来确定一个 JSON 的数据结构描述。看到这里,可能我们还没有体会到它的作用,我们会在后续具体来看一下它是如何发挥作用,在哪些场景下为我们提供便利的,敬请期待。
内容收录于github 仓库
参考:
1.JSON Schema 入门
2.JSON Schema Reference
3.在线 JSON 转 JSON Schema
限时特惠:本站每日持续更新海量设计资源,一年会员只需29.9元,全站资源免费下载
站长微信:ziyuanshu688