我有一个像这样的 JSON 架构:
{
"$id": "<some id here>",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"additionalProperties": false,
"properties": {
"settings": {
"type": "object",
"additionalProperties": false,
"properties": {
"setting_1": {
"type": "string"
},
"setting_2": {
"type": "string"
},
"setting_3": {
"type": "string"
}
},
"required": [
"setting_1",
"setting_2",
"setting_3"
]
}
},
"required": [
"settings"
]
}
还有更多条目,如
setting_1
、setting_2
等。有没有办法可以应用配置:
{"type": "string"}
有效地实现所有这些属性?我知道我们可以使用
$def
,但是它不会带来任何显着的行数减少,因为通用配置只是一个键值对。
谢谢你
如果只有属性名称是动态的,则可以将
additionalProperties
与模式一起使用
{
"$id": "<some id here>",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"additionalProperties": false,
"properties": {
"settings": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"required": [
"settings"
]
}
这会给你一个例子
{
"settings": {
"foo": "foo",
"bar": "bar",
"baz": "baz"
}
}