我正在尝试创建一个JSON模式,该模式可以针对多个不同的实体进行验证,这些实体具有大部分相同的属性,但只有少数几个属性不同。
self.getUsers = function () {
$.get("/API/Users/GetUsers/");
}
基本上我想创建一个模式,确保姓氏为{
"firstname": "Bat",
"lastname": "man",
"email": "batman@gmail.com"
}
{
"firstname": "Super",
"lastname": "man",
"phone": "543-453-4523"
}
{
"firstname": "Wonderwo",
"lastname": "man",
"email": "wonderwoman@gmail.com"
}
,并且具有"man"
或phone
属性。
我尝试使用email
来实现此功能,如下所示:
oneOf
但我认为这不行。使用JSON模式甚至可以实现这样的功能吗?我怎样才能做到这一点?
答案 0 :(得分:4)
你有几个问题:
你需要:
{
"type": "object",
"required": ["firstname", "lastname"],
"properties": {
"firstname": {
"type": "string"
},
"lastname": {
"type": "string",
"enum": ["man"]
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
}
},
"anyOf": [
{ "required": ["email"] },
{ "required": ["phone"] }
]
}