如何在JSON Schema中强制对象属性仅用指定属性,禁止空键等未定义属性
JSON Schema 限制对象仅包含指定属性的修改方案
你当前的Schema里,uniqueItems是用于数组的关键字,对对象类型的属性完全无效,需要移除。要实现"仅允许已定义的property1、property2、property3,禁止任何未定义属性(包括空键"")"的需求,核心是添加additionalProperties: false关键字。
修改后的完整Schema如下:
{ "type": "object", "properties": { "object": { "type": "object", "properties": { "property1": { "type": "string" }, "property2": { "type": "string" }, "property3": { "type": "string" } }, "additionalProperties": false } } }
关键说明:
additionalProperties: false:明确指定该对象不允许出现任何未在properties中定义的属性,包括空键""这类非常规属性。- 如果你还需要强制要求
property1、property2、property3必须全部存在,可以在object的Schema中添加required数组,示例如下:{ "type": "object", "properties": { "object": { "type": "object", "properties": { "property1": { "type": "string" }, "property2": { "type": "string" }, "property3": { "type": "string" } }, "additionalProperties": false, "required": ["property1", "property2", "property3"] } } }
内容的提问来源于stack exchange,提问作者Jordan Jordanovski
相关产品推荐
相关产品推荐

