jermainedavy/json-validator

一个库,用于将 JSON 字符串与用 PHP 类定义的模型进行验证。

dev-master 2021-10-21 10:09 UTC

This package is auto-updated.

Last update: 2024-09-29 05:56:59 UTC


README

安装

要安装此包,请使用以下命令

composer install JermaineDavy\JsonValidator

如果您尚未安装 Composer 包管理器,可以在此 链接 下载

用法

此包允许将 JSON 字符串与由类表示的模型进行评估。

基本用法

使用简单,只需完成两件事。

  1. 定义模型
    • 该模型必须是 Validator 类的子类。
use JermaineDavy\JsonValidator\Validator;

class Test extends Validator{
    public array $state = [
        "type" => "boolean",
        "required" => true
    ];

    public array $message = [
        "type" => "string",
        "min" => 3,
        "max" => 100
    ];
}
  1. 对模型运行 JSON 验证。
$validator = new Test();

$response = $validator->validate($json);

validate 方法返回一个包含仅两个属性的对象。验证的状态 status 和解释状态的 message。如果返回的状态是 true,则验证成功,否则验证失败,可以从消息中获得更多信息。

允许进行哪些检查?

  • type(string)-> 检查 JSON 中指定的类型是否与模型中的类型匹配
  • required(boolean) -> 检查模型中的字段是否在 JSON 中
  • min(double|integer) -> 检查字符串长度或数字是否小于模型中指定的值
  • max(double|integer) -> 检查字符串长度或数字是否大于模型中指定的值
  • enum(array) -> 检查 JSON 值是否与给定数组中的任一值匹配
  • regex(string|array) -> 执行 1 个或多个检查,查看值是否与正则表达式匹配
  • dateFormat(string) -> 检查 JSON 值是否与给定的日期格式匹配
  • custom(Closure) -> 用于自定义检查,这些检查可能未由此库定义。闭包应返回空字符串表示成功或错误字符串表示失败。

type 值也可以引用扩展 Validator 类的其他模型。例如。

use JermaineDavy\JsonValidator\Validator;

class Test extends Validator{
    public array $state = [
        "type" => "boolean",
        "required" => true
    ];

    public array $object = [
        "type" => SecondTest::class
    ];
}

此语法适用于单个 SecondTest 实例或 SecondTest 数组