Валидация json-файла

196
29 декабря 2018, 13:40

Есть файл json, в котором лежат параметры. Вопрос, как в PHP проверить валидность файла? Ниже дана json схема.

    {
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    }
  },
  "required": [
    "name"   
  ]
}
Answer 1

composer.json

{
"require": {
    "justinrainbow/json-schema": "^5.2"
}
}

data_invalid.json:

{"testtwo" : "test"}

data.json:

{"name" : "test"}

schema.json

{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
  "name": {
    "type": "string"
  }
},
"required": [
  "name"
]

}

index.php

<?php
 // Не забываем про composer install перед запуском
require_once 'vendor/autoload.php';
$data = json_decode(file_get_contents('data.json'));
// Validate
$validator = new JsonSchema\Validator;
$validator->validate($data, (object)['$ref' => 'file://' . realpath('schema.json')]);
if ($validator->isValid()) {
    echo "The supplied JSON validates against the schema.\n";
} else {
    echo "JSON does not validate. Violations:\n";
    foreach ($validator->getErrors() as $error) {
        echo sprintf("[%s] %s\n", $error['property'], $error['message']);
    }
}
READ ALSO
Не работает функция php

Не работает функция php

Есть функция:

192
Установка cookie с помощью echo с сервера PHP силами JS при авторизации

Установка cookie с помощью echo с сервера PHP силами JS при авторизации

Всем приветКод приводить не буду - вопрос на безопасность

183
Как изменить курс валют в виджете?

Как изменить курс валют в виджете?

Есть сервис, который предоставляет код виджета валют https://rutradingview

224