jsonschema:有限集合中的可选元素

时间:2019-05-02 09:25:38

标签: jsonschema python-jsonschema

最小示例(python 3.x):

_required_fields = {
    "id": {
        "type": "integer",
        "minimum": 1,
    },
    "name: {
       "type": "string" 
   }
}

_optional_fields = {
    "address": {
       "type": "string" 
   }
}

my_schema = {
    "type": "object",
    "properties": {
        **_required_fields ,
        **_optional_fields
    },
    "required": [key for key in _required_fields ],
    # "additionalProperties": ???
}

该模式应确保所有必填字段都在JSON中(可以正常工作)。并且应将其他属性限制为_optional_fields字典中的属性。 (我被卡住的地方)。

如果没有可选属性,只需将additionalProperties设置为False。然后是minPropertiesmaxProperties以限制其他属性的数量。但是如何将这些限制为固定的选择呢?

编辑:

感谢@Relequestual。解决方案非常简单。我设置了"additionalProperties": False,现在它只接受必填字段和可选字段,而没有接受这些字段。

1 个答案:

答案 0 :(得分:1)

FooadditionalProperties可以防止false中尚未定义的任何属性。

它与propertiesrequired不相关,也不与之交互