Свойства (пары ключ-значение) объекта определяются с помощью ключевого слова properties. Значение свойств - это объект, где каждый ключ является именем свойства, а каждое значение - это схема JSON, используемая для проверки этого свойства.
Дополнительные свойства могут ограничивать объект, чтобы он не имел дополнительных свойств, которые явно не указаны, или может указывать схему для любых дополнительных свойств объекта. Иногда этого недостаточно, и вы можете ограничить имена дополнительных свойств или можете сказать, что, учитывая определенный вид имени, значение должно соответствовать конкретной схеме. Вот в чем заключается patternProperties: это новое ключевое слово, которое отображает из регулярных выражений в схемы. Если дополнительное свойство соответствует заданному регулярному выражению, оно также должно быть проверено против соответствующей схемы.
Примечание: при определении регулярных выражений важно отметить, что выражение может совпадать в любом месте имени свойства. Например, регулярное выражение «p» будет соответствовать любому имени свойства с p в нем, например, «apple», а не только к свойству, имя которого просто «p». Поэтому, как правило, менее сложно смешивать регулярное выражение в^... $, например, «^ p $».
для дальнейшего использования - http://spacetelescope.github.io/understanding-json-schema/reference/object.html
Первый пункт прямо противоречит примеру я дает: Когда я изменить ключевое слово patternProperties к свойствам без изменения остальной части схемы, он по-прежнему работает, то есть ключевое слово properties также обрабатывает регулярное выражение. –
может быть связано с тем, что ключевое слово property обработало ваше регулярное выражение как свойство, имеющее тип значения только как число, и вы предоставляете число, из-за чего оно приняло ваше значение. Я не уверен. – Kandy