我尝试使用https://github.com/epoberezkin/ajv库来使用JSON架构v5的switch
属性。
我有以下架构,但它无效。
{
"type": "array",
"id": "http://localhost/drinks.json",
"items": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"switch": [
{
"if": {
"properties": {
"type": {
"enum": ["coffee", "tea"]
}
}
},
"then": {
"$ref": "http://localhost/caffeinated.json"
}
},
{
"then": {
"$ref": "http://localhost/decaf.json"
}
}
]
}
}
}
}
}
要明确的是,$ref
在没有switch语句的情况下工作正常。例如,这会得到正确验证:
{
"type": "array",
"id": "http://localhost/drinks.json",
"items": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"oneOf": [
{
"$ref": "http://localhost/caffeinated.json"
},
{
"$ref": "http://localhost/decaf.json"
}
]
}
}
}
}
}
但是第一个模式并不起作用,而且#34并没有起作用"我的意思是它甚至不会触发有效/无效。我做错了吗?