#jsonschema #angular6-json-schema-form
#jsonschema #angular6-json-schema-form
Вопрос:
Я использую схему JSON для создания формы, и у меня есть объект в «определениях», на который я ссылаюсь с помощью $ref в двух разных местах схемы. В одном из экземпляров мне нужно добавить еще одно свойство к объекту, на который ссылается ссылка, как я могу этого добиться?
{
"definitions": {
"settingsProperties": {
"$id": "#/definitions/settingsProperties",
"type": "object",
"properties": {
"thickness": {
"$id": "#/properties/defaultLayerSettings/thickness",
"type": "number",
"title": "Thickness:",
}
}
}
},
"properties": {
"layerSettings": {
"$id": "#/properties/layerSettings",
"type": "array",
"title": "Dynamic Layer Settings:",
"items": {
"title": "Dynamic Settings",
"type": "object",
"$ref": "#/definitions/settingsProperties", PLUS startLayer PROPERTY!!!!!!!!!!!!!!
"required": [
"startLayer"
]
}
}
}
Ответ №1:
Просто добавьте "properties": { "startLayer": { ... } }
под required
ключевым словом.
Обратите внимание, что если вы используете какую-либо версию спецификации, более раннюю, чем черновик 2019-09 (текущая последняя версия), вам придется вложить $ref
ключевое слово в allOf
. Кроме того, использование фрагментов (строк, которые включают #
) не разрешено в $id
ключевом слове, хотя некоторые устаревшие инструменты генерируют схемы с этой структурой.