brainly/jvalidator

该软件包最新版本(dev-master)没有可用的许可证信息。

JSON Schema draft v3 PHP实现

该软件包的官方仓库似乎已不存在,因此已冻结该软件包。

dev-master 2016-05-20 11:20 UTC

This package is not auto-updated.

Last update: 2024-03-12 04:20:39 UTC


README

Build Status

JSON Schema validation library for draft v3

  • 构建JSON模式并检查其语法
  • 对JSON进行模式验证

实现的功能

  • 类型:arraybooleanintegernullnumberobjectstringunion
  • 约束:typepropertiesadditionalPropertiesitemsrequiredminimumexclusiveMinimummaximumminItemsmaxItemsuniqueItemspatternminLengthmaxLengthenum
  • 其他:descriptionidextends

用法

JSON验证

use Brainly\JValidator\Validator;

$schema = '{...}';
$json = '{...}';

$validator = new Validator();
$validator->validate($json, $schema);

echo "Validation result: " . $validator->getResultCode() . "\n";
print_r($validator->getValidationErrors());

模式构建

use Brainly\JValidator\SchemaProvider;

$provider = new SchemaProvider(__DIR__ . '/SchemaDir');

try {
    $schema = $provider->getSchema("test.jsonschema");
} catch (Brainly\JValidator\SchemaProviderException $e) {
    die("Can not read schema from file. " . $e->getMessage());
} catch (Brainly\JValidator\SchemaBuilderException $e) {
    die("Invalid schema. " . $e->getMessage());
}

分析验证结果

以下函数可用于获取验证结果:

  • Validator::getResultCode() 返回
    • 0 - 验证通过
    • 1 - 验证通过,但JSON已被更改(尚未实现)
    • 2 - JSON不符合模式
    • 3 - 尚未执行验证
  • Validator::getValidationErrors() 返回包含每个属性的错误的关联数组,例如 Array ("property" => "错误信息")

关于

作者

Łukasz Lalik for Brainly - lukasz.lalik@brainly.com - https://twitter.com/LukaszLalik
另请参阅参与此项目的贡献者列表

许可证

JValidator遵循BSD-3许可证 - 请参阅LICENSE文件以获取详细信息。