【发布时间】:2016-08-19 15:06:58
【问题描述】:
我今天发现了 JSON Schema,它看起来 100% 符合我的需求,但它实际上让我对最基本的案例之一感到抓狂。在创建这篇文章之前,我显然已尽力遵循现有文档并在互联网上寻找一些有用的东西。
堆栈:PHP7 - justinrainbow/json-schema 2.0.5
这是架构:
{
"description":"UserCreate",
"type":"object",
"properties":{
"login":{
"type":"string",
"required":true
},
"idAsc":{
"type":"string",
"required":true
}
},
"required":[
"login",
"idAsc"
]
}
如您所见,我同时使用了必需的定义(布尔值和数组),为了确保我使用的是好的定义,我还尝试了只使用数组和或布尔值,结果相同。
这是数据
{
"login":"email@email.com"
}
我希望下面的代码能够检测到缺少所需的 idAsc 参数。
$validator = new JsonSchema\Validator;
$validator->check($data, $schema);
if ($validator->isValid() == false)
echo("Missing something");
else
echo("Good");
但是这段代码一直在打印“Good”……我肯定遗漏了一些关于 JSON Schema 的内容。
感谢您的帮助,最好的问候。
【问题讨论】:
-
json-schema.org/implementations.html 列出了 5 个用于 PHP 的不同 JSON Schema 验证器。你用的是哪一个?
-
@Barmar 您可以在我的“堆栈”部分找到它:实际使用 justinrainbow/json-schema -> github.com/justinrainbow/json-schema
标签: php json jsonschema json-schema-validator