使用架构验证现有的JSON文件

时间:2019-07-02 06:56:57

标签: json validation schema

我正在构建一个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;
     }
     }

0 个答案:

没有答案