json схема не работает для type = number и pattern = 10 di git обычный шаблон - PullRequest
0 голосов
/ 01 августа 2020

Я пытаюсь написать jsonschema, которая работает для телефонного номера, который является числом, и он должен быть равен 10 di git. Для этого я написал схему json, как показано ниже

{"title":"Schema","description":"Schema","type":"object","properties":{"phone_number":{"type":"number","pattern":"^[0-9]{10}$"}}}.

Мой запрос json равен {"phone_number":123481}

В идеале моя схема json должна выдавать исключение, сообщающее мне phone_number не равен 10-di git, но ошибки нет. Может кто-нибудь сказать мне, что не так в этом коде.

1 Ответ

4 голосов
/ 01 августа 2020

JSON Черновик проверки схемы spe c перечисляет pattern в разделе «Ключевые слова проверки для строк». Следовательно, если вы хотите проверить номера телефонов, вам придется записывать их как string s, а не number s.

Другими словами, ваша схема должна быть

{"title":"Schema","description":"Schema","type":"object","properties":{"phone_number":{"type":"string","pattern":"^[0-9]{10}$"}}}.

и ваш запрос JSON должен быть {"phone_number":"123481"}.

В некоторых местах (особенно здесь, в Великобритании) номера телефонов могут начинаться с нулей, но тип number не может хранить ведущие нули. Кроме того, может быть разница, например, между телефонными номерами 123 и 0123, и вы не сможете отличить эти два номера, если используете тип number.

...