阅读量:0
在 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
中定义的结构。如果验证失败,将输出错误信息。