jsonschema управляет содержимым свойства независимо от имени свойства

#json #jsonschema

Вопрос:

Я хочу написать json-схему для следующего json:

 {
    "peopleByID": {
        "5534": {
            "name": "Bob",
            "weight": 82
        },
        "8423": {
            "name": "Donna",
            "weight": 73
        },
        ...
    }
}
 

Дело в том, что я хочу контролировать содержимое каждого свойства (обязательно содержать имя и вес), не зная заранее имя свойства (идентификатор человека). Я не мог найти для этого никакого решения.

Ответ №1:

additionalProperties позволяет задать схему, которой должны соответствовать все свойства (которые еще не были охвачены properties patternProperties ключевым словом или) :

 "additionalProperties": {
  "type": "object",
  "required": ["name", "weight"]
}
 

Это задокументировано здесь.