Ajv Schema Validation For Nested Object
Functions returns object which looks something like this: { 'answer': { 'vehicle_type': 1, 'message': 'Car' }, 'model': 'VW',
Solution 1:
You can use "oneOf" property for that.
Where you will have "one of" a vehicle type 1, or a type 2. Type 1 has certain required properties while type 2 has different required properties.
For example:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "http://some.site.somewhere/entry-schema#",
"oneOf": [
{"$ref": "#/definitions/type1"},
{"$ref": "#/definitions/type2"}
],
"definitions": {
"type1": {
"type": "object",
"properties": {
"answer": {
"type": "object",
"properties": {
"vehicle_type": {
"type": "integer",
"enum": [1]
},
"message": {
"type": "string"
}
}
},
"model": {
"type": "string"
},
"color": {
"type": "string"
}
},
"required": [
"model",
"color"
]
},
"type2": {
"type": "object",
"properties": {
"answer": {
"type": "object",
"properties": {
"vehicle_type": {
"type": "integer",
"enum": [2]
},
"message": {
"type": "string"
}
}
},
"engine_count": {
"type": "integer"
},
"seat_count": {
"type": "integer"
},
"wing_count": {
"type": "integer"
}
},
"required": [
"engine_count",
"seat_count",
"wing_count"
]
}
}
}
Post a Comment for "Ajv Schema Validation For Nested Object"