#json #jsonschema
#json #jsonschema
Вопрос:
В настоящее время я пишу схему json, и мне было интересно, знает ли кто-нибудь ответ на мою проблему. Могу ли я гарантировать, что значение объекта равно ключу объекта где-нибудь в JSON. Учитывая следующий JSON:
{
"defaultConfig" : "config1",
"configs" : {
"config0" : {...},
"config1" : {...},
"config2" : {...}
}
}
Могу ли я подтвердить, что содержимое «defaultConfig» должно быть одним из ключей свойств «конфигураций» (например, «config0», «config1», «config2»)? В этом случае я не могу использовать перечисления, поскольку имена конфигураций заранее неизвестны?
Редактировать: вот схема, которая у меня есть до сих пор:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties" : {
"defaultConfig" : {
"type" : "string"
},
"configs" : {
"type" : "object",
"patternProperties": {
"." : {"type" : "object"}
}
}
}
}
Комментарии:
1. Я думаю, вы не можете, поскольку схема json используется для проверки json, а не самой схемы.
Ответ №1:
Нет, в схеме JSON нет ничего, что позволяло бы ключевому слову таким образом ссылаться на другую часть экземпляра данных.
Однако последняя версия спецификации допускает расширения с помощью ключевого слова $vocabulary , поэтому, если вы так склонны, вы можете написать свое собственное ключевое слово, которое сделало то, что вам нужно.