У меня есть схема (Назначение иллюстрации):
Ссылка на схему
{
"subjects":[
{
"type":"english",
"days":{
"mon":"yes",
"tue":"yes" //any value
}
},
{
"type":"french",
"mon": "yes" //any value
}
]}
Есть ли способ использовать валидатор пользовательских ключевых слов ajv, где я могу извлечьзначение:
// 1 'субъектов [0] .days.mon'
// 2 'субъектов 1 .mon'
и если // 1 имеет значение, то я должен высветить ошибку для // 2, поскольку она не может иметь никакого значения, включая пустое пространство.
В псевдокоде:
//assuming the json object and the respective keys are there
if(subjects[0] !== undefined && subjects[0].days.mon == "yes"){
if(subjects[1].mon == "yes"){
//JSON Schema error ..
}
}else{
if(subjects[1].mon == ""){
//JSON Schema error ..
}else{
//Everything is good
}
}
Я ищу больше с точки зрения пользовательской проверки ajv.
PS: пользовательские ключевые слова ajv
ajv.addKeyword('myCustomValidation', {
validate: function(schema, data, dataPath, parentData, parentDataProperty){
//But here I cannot get the entire array here to do a check.
//I know this can be handle when I have a JSON at nodejs server side, but anything with ajv custom keyword will be nice
}}