Мой вопрос к jsonschema имеет два аспекта:
Учитывая
{
"foo": {"ar": {"a": "r"}},
"bar": ""
}
Как проверить, существует ли ключ "ar" внутри "foo"?
И только если «ar» существует внутри «foo», как мне сделать так, чтобы «bar» существовал внутри данного json?
Я пытался просмотреть другие ответы SO или документы jsonschema, но они, кажется, только проверяют, имеет ли ключ конкретное значение, а не просто существует ли ключ независимо от его значения. И jsonschema для вложенных объектов, кажется, проверяет только самый глубокий уровень гнезда, а не где-то посередине.
Я придумал это, но это не работает.
{
"definitions": {},
"$schema": "https://json-schema.org/draft-07/schema#",
"$id": "https://example.com/root.json",
"type": "object",
"properties": {
"foo": {
"type": "object"
},
"bar": {
"type": "string"
}
},
"required": [
"foo"
],
"if": {
"properties": {
"foo": {
"properties": {
"ar": {
"type": "object"
}
}
}
}
},
"then": {
"required": [
"bar"
]
}
}