npm 包 ajv 使用教程

阅读时长 5 分钟读完

什么是 Ajv?

Ajv(Another JSON Schema Validator)是一个用于验证 JSON 数据的开源库,基于 JSON Schema 规范实现。它支持 JSON Schema draft-04/06/07 和 JSON Type Definition(JTD)规范,并且在性能和功能方面优于其他 JSON Schema 验证器。

安装 Ajv

使用 npm 可以很容易地安装 Ajv:

使用 Ajv

编写 JSON Schema

在使用 Ajv 进行数据验证之前,我们需要编写符合 JSON Schema 规范的 schema。下面是一个简单的例子:

-- -------------------- ---- -------
-
  ------ -----------------------------------------
  ---------- ------------------------------------------
  -------- ---------
  ------- ---------
  ----------- ------------- ------------
  ------------- -
    ------------ -
      ------- --------
    --
    ----------- -
      ------- --------
    --
    ------ -
      -------------- ---- -- -------
      ------- ----------
      ---------- -
    -
  -
-

这个 schema 描述了一个人的基本信息,包括名字、姓氏和年龄。它要求必须提供 firstName 和 lastName 属性,age 属性是可选的,但如果存在,则必须是大于等于 0 的整数。

验证数据

有了 schema,我们就可以使用 Ajv 来验证数据了。下面是一个简单的例子:

-- -------------------- ---- -------
----- --- - ---------------
----- --- - --- ------

----- ------ - -
  ------ -----------------------------------------
  ---------- ------------------------------------------
  -------- ---------
  ------- ---------
  ----------- ------------- ------------
  ------------- -
    ------------ -
      ------- --------
    --
    ----------- -
      ------- --------
    --
    ------ -
      -------------- ---- -- -------
      ------- ----------
      ---------- -
    -
  -
--

----- ---- - -
  ---------- -------
  --------- ------
  ---- --
--

----- -------- - --------------------
----- ------- - ---------------

-- --------- -
  ----------------------
- ---- -
  --------------------- -----------------
-

在这个例子中,我们首先创建了一个 Ajv 实例,然后编写了一个 JSON Schema。接着,我们定义了要验证的数据,并使用 ajv.compile 方法编译了 schema,并使用编译后的 schema 验证数据。

如果数据验证通过,validate 方法返回 true;否则,它将返回 false,并且错误信息将存储在 validate.errors 中。

自定义关键字

Ajv 允许你定义自己的关键字,以扩展其功能。以下是一个自定义关键字的例子:

-- -------------------- ---- -------
----- --- - ---------------
----- --- - --- ------

----------------------- -
  ----- ---------
  --------- -------- -------- ----- -
    ------ ---- -- --------- -- ---- -- ----------
  -
---

----- ------ - -
  ----- ---------
  ------ --- ---
--

----- ---- - --

----- -------- - --------------------
----- ------- - ---------------

-- --------- -
  ----------------------
- ---- -
  --------------------- -----------------
-

在这个例子中,我们定义了一个自定义关键字 range,它接受一个包含两个数字的数组作为参数。在 schema 中使用 range 关键字时,它将确保数据位于指定的范围内。

总结

Ajv 是一个非常强大的 JSON Schema 验证库,它支持多种规范,具有优异的性能和功能。本文介

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/33728

纠错
反馈