JSON Schema数据校验入门

本文介绍了JSON Schema的使用,包括基本概念、关键字如$id、$schema、properties、required等,以及如何进行数据校验、嵌套数据结构处理和引用外部JSON Schema。通过一个产品类目接口的例子,详细解析了JSON Schema在数据定义和验证中的应用。
摘要由CSDN通过智能技术生成

快速开始

我们用一个例子来介绍说明 JSON Schema,虽然不可能面面俱到,但是对JSON Schema的基本概念、语法、使用有个较为全面的了解是完全没问题的。

这里假设我们有一个产品类目接口是用JSON Data格式来交互的,这个类目的产品信息字段有:

  • 产品ID:productId

  • 产品的名称:productName

  • 产品的销售价格:price

  • 可选字段的产品标签:tags

产品类目数据简单例子:

{
  "productId": 1,
  "productName": "A green door",
  "price": 12.50,
  "tags": [ "home", "green" ]
}

当你看到这个产品类目JSON Data数据时,你是不是有一些疑问,比如:

  • 产品ID字段是啥,整型?长整型?

  • 产品的名称字段是必填的吗。

  • 价格字段可以是零吗,或者小数点精度是几位呢。

  • 产品标签字段都是字符串类型吗。

为了解决这些问题,我们需要使用元规则对这些字段进行定义解释、数据验证。JSON Schema就是这么一个帮助我们解决这些问题的工具,它符合IETF标准。

1、开始使用schema

描述JSON Schema文档的格式可以是JSON,也可以是xml,这里以JSON为例。因此要特别要区分JSON Data 与JSON Schema的关系,JSON Schema是对JSON Data字段的定义解释、数据校验。

接下来,我们从一个基础的JSON schema开始,了解其几个关键字

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://example.com/product.schema.json",
  "title": "Product",
  "description": "A product in the catalog",
  "type": "object"
}
  • $schema关键字:用于描述JSON schema满足特定草案标准的版本,一般用于版本控制

  • $id关键字:定义了一个URL,类似于身份id,可以用于对当前或其他JSON schema文档的引用

  • title和description关键字:没有包含到数据校验里面去,仅仅用于描述

  • type关键字:是对JSON Data文档格式的约束,这个例子中要求的是一个JSON Object

这里涉及了JSON Schema三种概念术语: Schema的属性关键字、Schema的注释关键字、Schema的数据校验关键字,后面都是围绕着这几个概念的关键字展开。

1.1、JSON Data 属性定义

productId是一个数值型的字段,由于它是产品的身份标识,因此它也是唯一必填的

我们上面的JSON schema例子进行拓展,增加属性关键字来对productId解释说明

  • properties关键字:用于对JSON Data的字段进行描述、解释。这里增加了对productId、pruductName字段的描述、类型限制

  • required关键字:是一个list,用于声明JSON Data字段是否必填,这里增加product

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值