JSON Schema - описание языка для валидации структур данных
JSON Schema - это схема для проверки корректности и соответствия структуры JSON-данных определенному формату. Она представляет собой описание ожидаемого формата данных и правил, которые должны быть выполнены при их обработке.
Определим простую схему для объекта, который содержит информацию о человеке:
{
"type": "object",
"required": ["name", "age"],
"properties": {
"name": {
"type": "string"
},
"age": {
"type": "number"
},
"email": {
"type": "string",
"format": "email"
}
}
}
Здесь мы определили, что объект должен быть типа "object". Также мы указали, что поля "name" и "age" обязательны для заполнения и должны соответствовать типам "string" и "number" соответственно. Для поля "email" мы указали, что оно должно соответствовать типу "string" и иметь формат "email".
Мы можем использовать эту схему для проверки нашего объекта на соответствие ей:
{
"name": "John",
"age": 30,
"email": "john@mail.com"
}
Если мы передадим этот объект на проверку схеме, то она вернет true, так как объект соответствует заданным правилам. Если же мы попытаемся передать объект без обязательного поля "name", то схема вернет false.
Пример кода на языке JavaScript для проверки объекта на соответствие схеме:
const schema = {
"type": "object",
"required": ["name", "age"],
"properties": {
"name": {
"type": "string"
},
"age": {
"type": "number"
},
"email": {
"type": "string",
"format": "email"
}
}
};
const person = {
"name": "John",
"age": 30,
"email": "john@mail.com"
};
const Ajv = require('ajv');
const ajv = new Ajv(); // создаем новый экземпляр класса для валидации данных
const validate = ajv.compile(schema); // компилируем схему в функцию валидации
const isValid = validate(person); // проверяем объект на соответствие схеме
console.log(isValid); // true
Здесь мы использовали библиотеку Ajv для компиляции схемы и проверки объекта на соответствие ей. Если объект не проходит проверку, то можно вывести ошибки с помощью метода `validate.errors`.