扩展 $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 关键字中不允许使用片段(包含 # 的字符串),尽管一些过时的工具正在生成具有这种结构的模式。