扩展 $ref 对象属性
Extend $ref object properties
我正在使用 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"
]
}
}
}
只需在 required
关键字下方添加 "properties": { "startLayer": { ... } }
。
请注意,如果您使用早于 2019-09 草案(当前最新版本)的任何规范版本,则必须将 $ref
关键字嵌套在 allOf
中。此外,$id
关键字中不允许使用片段(包含 #
的字符串),尽管一些过时的工具正在生成具有这种结构的模式。
我正在使用 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"
]
}
}
}
只需在 required
关键字下方添加 "properties": { "startLayer": { ... } }
。
请注意,如果您使用早于 2019-09 草案(当前最新版本)的任何规范版本,则必须将 $ref
关键字嵌套在 allOf
中。此外,$id
关键字中不允许使用片段(包含 #
的字符串),尽管一些过时的工具正在生成具有这种结构的模式。