需求:对于使用json作为配置文件需要使用json schema验证合法性。当所有控件的设置需要保存在数组中,就需要对整个数组中的控件进行验证。解决办法:
使用anyOf将所有组件的属性列出来。对于component使用"const",区别组件名称,为每种组件的options进行定义。使用这种方法可以编写schema并对配置文件进行验证。
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"type":"object",
"properties":{
"controls":{
"type":"array",
"items":{
"anyOf": [
{
"type":"object",
"properties":{
"component":{
"const":"mytable"
},
"options":{
}
},
"additionalProperties": false
},
{
"type":"object",
"properties":{
"component":{
"const":"_text"
},
"options":{
}
},
"additionalProperties": false
}],
}}},
"additionalProperties": false
}
网友评论