在 PHP 中,验证 application/json 数据的一种常用方法是使用 JSON Schema。JSON Schema 是一种描述 JSON 数据格式的语言,可以用于验证 JSON 数据是否符合预期的结构。
要在 PHP 中使用 JSON Schema 进行验证,你可以使用第三方库,例如 justinrainbow/json-schema
。首先,通过 Composer 安装这个库:
composer require justinrainbow/json-schema
然后,创建一个 JSON Schema 文件(例如 schema.json
)来描述你期望的 JSON 数据结构:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"age": {
"type": "integer"
},
"email": {
"type": "string",
"format": "email"
}
},
"required": ["name", "age", "email"]
}
接下来,使用 justinrainbow/json-schema
库验证 JSON 数据:
<?php
require_once 'vendor/autoload.php';
use JsonSchema\Validator;
// 读取 JSON Schema 文件
$schema = json_decode(file_get_contents('schema.json'));
// 待验证的 JSON 数据
$json = '{
"name": "John Doe",
"age": 30,
"email": "john.doe@example.com"
}';
// 创建一个 Validator 实例
$validator = new Validator();
// 验证 JSON 数据
$validator->validate(json_decode($json), $schema);
// 检查验证结果
if ($validator->isValid()) {
echo "JSON 数据符合预期的结构。";
} else {
echo "JSON 数据不符合预期的结构。";
foreach ($validator->getErrors() as $error) {
echo sprintf("[%s] %s\n", $error['property'], $error['message']);
}
}
这个示例将验证给定的 JSON 数据是否符合 schema.json
中定义的结构。如果验证失败,将输出错误信息。