I've defined JSON Schema and I'm using JSON Editor to render a form having two drop-down list (Brands and Devices) and the expected form looks like this:
Brands drop down list consists of 3 values:
- Apple
- Dell
Similarly, Devices drop down list also consists of 3 values:
- Laptop
- Tablet
- Phone
However, there is a condition to render the values on Devices drop down list and the conditions are as follows:
- If Device is Dell then just show Laptop and Tablet as devices
- Else show all of the available devices
I've used If then and else of JSON schema draft 7 to achieve the expected result and my solution so far is shown below (Here's a link to interactive JSON Schema playground):
{
"required": [
"brands",
"devices"
],
"properties": {
"brands": {
"$ref": "#/definitions/brands"
}
},
"definitions":{
"brands": {
"title": "Brands",
"type": "string",
"enum": [
"Apple",
"Google",
"Dell"
],
"default": "Apple"
},
"all_devices": {
"type": "string",
"enum": [
"Laptop",
"Tablet",
"Phone"
]
},
"dell_devices": {
"type": "string",
"enum": [
"Laptop",
"Tablet"
]
}
},
"if": {
"properties": {
"brands": {
"const" : "Dell"
},
"required": [
"devices"
]
},
"then": {
"properties": {
"devices": {
"$ref": "#/definitions/dell_devices"
}
},
"required": [
"devices"
]
},
"else":{
"properties": {
"devices": {
"$ref": "#/definitions/all_devices"
}
},
"required": [
"devices"
]
}
}
}
However, the second drop down (Devices) is not not displaying at all and I'm not sure how I can debug the issue as I'm new to JSON schema.
I would really apprecriate if anyone could guide me to the right direction or maybe suggest any other approaches to achieve the result that I desired.
Thanks a lot!