пользовательское ключевое слово ajv или пользовательская проверка - PullRequest
0 голосов
/ 29 сентября 2019

У меня есть схема (Назначение иллюстрации):

Ссылка на схему

{
  "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
}}
...