Схема JSON: как проверить, содержит ли поле значение - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть валидатор схемы JSON, где мне нужно проверить определенное поле email, чтобы увидеть, является ли оно одним из 4 возможных электронных писем.Позволяет назвать возможности ['test1', 'test2', 'test3', 'test4'].Иногда электронные письма содержат новый разделитель \n, поэтому я должен учитывать это также.Можно ли сделать строку, содержащую метод в JSON-схеме?

Вот моя схема без проверок электронной почты:

{
  "type": "object",
  "properties": {
    "data": {
        "type":"object",
        "properties": {
            "email": {
                "type": "string"
            }
        },
    "required": ["email"]
    }
  }
}

Моя полезная нагрузка ввода:

{
  "data": {
      "email": "test3\njunktext"
      }
}

Мне потребуется следующая полезная нагрузка для прохождения проверки, так как она имеетtest3 в нем.Спасибо!

1 Ответ

0 голосов
/ 03 декабря 2018

Я могу придумать два пути:

Используя enum , вы можете определить список действительных писем:

{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "email": {
          "enum": [
            "test1",
            "test2",
            "test3"
          ]
        }
      },
      "required": [
        "email"
      ]
    }
  }
}

Или с pattern который позволяет использовать регулярное выражение для сопоставления действительного адреса электронной почты:

{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "email": {
          "pattern": "test"
        }
      },
      "required": [
        "email"
      ]
    }
  }
}
...