我正在构建一个PHP搜寻器,它以JSON格式解析响应,并且我想使用schema.json对其进行验证(我正在使用opis.io)。第一部分正在工作,我正在生成JSON文件。我遇到了使用我的schema.json验证JSON的问题。我收到的错误是
const arr = [{
"year": 2019,
"month": 6,
"day": 25,
"hour": 4,
"minute": 0,
"temperature": 26.52
},
{
"year": 2019,
"month": 6,
"day": 25,
"hour": 4,
"minute": 0,
"temperature": 26.52
}];
const newArr = arr.reduce((a,c) => {
const date = new Date(c.year, c.month - 1, c.day, c.hour, c.minute);
a.push({date, temperature: c.temperature});
return a;
}, []);
console.log(JSON.stringify(newArr));
我不太确定为什么会收到此错误。对于任何建议,我们将非常感谢。
这是我用来验证现有JSON的代码:
Error: required
{
"missing": "title"
}
这是我的json文件:
function validate() {
require __DIR__ . '/vendor/autoload.php';
$get_file = file_get_contents('jobs.json');
$data = json_decode($get_file);
$data_object = (object)$data;
$schema = Schema::fromJsonString(file_get_contents('schema.json'));
$validator = new Validator();
/** @var ValidationResult $result */
$result = $validator->schemaValidation($data_object, $schema);
if ($result->isValid()) {
echo 'Your JSON is valid', PHP_EOL;
} else {
/** @var ValidationError $error */
$error = $result->getFirstError();
echo 'Your JSON is invalid', PHP_EOL;
echo "Error: ", $error->keyword(), PHP_EOL;
echo json_encode($error->keywordArgs(), JSON_PRETTY_PRINT), PHP_EOL;
}
}