如何将 additionalproperties: false 应用于所有对象?
How to apply additionalproperties: false to all object?
我创建了以下 json 架构。
{
"type": "object",
"properties": {
"hoge": {
"type": "object",
"properties": {
"code": {
"type": "string"
}
},
"additionalProperties": false
},
"foo": {
"type": "object",
"properties": {
"value": {
"type": "number"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
当type为object时,我想设置additionalproperties = false。
但这是非常多余的。
我定义了以下定义以避免重复的附加属性,但它没有按预期工作。
{
"definitions": {
"baseObject": {
"type": "object",
"additionalProperties": false
}
},
"allOf": [{ "$ref": "#/definitions/baseObject"}],
"properties": {
"hoge": {
"allOf": [{ "$ref": "#/definitions/baseObject"}],
"properties": {
"code": {
"type": "string"
}
}
},
"foo": {
"allOf": [{ "$ref": "#/definitions/baseObject"}],
"properties": {
"value": {
"type": "number"
}
}
}
}
}
有什么方法可以应用附加属性:false 来键入对象吗??
对于 JSON 架构草案 2019-09 及更高版本,您应该在去重复的示例架构中使用 unevaluatedProperties
而不是 additionalProperties
。
additionalProperties
无法“看穿”$ref
或 allOf
等涂抹器关键字。它比那复杂一点,但这是最简单的思考方式。 additionalProperties
仅在同一架构对象中基于 properties
和 patternProperties
工作。
我创建了以下 json 架构。
{
"type": "object",
"properties": {
"hoge": {
"type": "object",
"properties": {
"code": {
"type": "string"
}
},
"additionalProperties": false
},
"foo": {
"type": "object",
"properties": {
"value": {
"type": "number"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
当type为object时,我想设置additionalproperties = false。 但这是非常多余的。
我定义了以下定义以避免重复的附加属性,但它没有按预期工作。
{
"definitions": {
"baseObject": {
"type": "object",
"additionalProperties": false
}
},
"allOf": [{ "$ref": "#/definitions/baseObject"}],
"properties": {
"hoge": {
"allOf": [{ "$ref": "#/definitions/baseObject"}],
"properties": {
"code": {
"type": "string"
}
}
},
"foo": {
"allOf": [{ "$ref": "#/definitions/baseObject"}],
"properties": {
"value": {
"type": "number"
}
}
}
}
}
有什么方法可以应用附加属性:false 来键入对象吗??
对于 JSON 架构草案 2019-09 及更高版本,您应该在去重复的示例架构中使用 unevaluatedProperties
而不是 additionalProperties
。
additionalProperties
无法“看穿”$ref
或 allOf
等涂抹器关键字。它比那复杂一点,但这是最简单的思考方式。 additionalProperties
仅在同一架构对象中基于 properties
和 patternProperties
工作。