如何解决JSON 模式 - 基于另一个下拉列表在下拉列表中显示值
我已经定义了 JSON Schema 并且我正在使用 JSON Editor 来呈现一个具有两个下拉列表(品牌和设备)的表单,并且预期的表单如下所示:
品牌下拉列表包含 3 个值:
- 苹果
- 谷歌
- 戴尔
同样,设备下拉列表也包含 3 个值:
- 笔记本电脑
- 平板电脑
- 电话
但是,在Devices下拉列表中呈现值是有条件的,条件如下:
我已经使用了 JSON 模式草案 7 的 If then 和 else 来实现预期的结果,到目前为止我的解决方案如下所示(Here's链接到交互式 JSON 模式游乐场):
{
"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","Tablet"
]
}
},"if": {
"properties": {
"brands": {
"const" : "Dell"
},"required": [
"devices"
]
},"then": {
"properties": {
"devices": {
"$ref": "#/deFinitions/dell_devices"
}
},"else":{
"properties": {
"devices": {
"$ref": "#/deFinitions/all_devices"
}
},"required": [
"devices"
]
}
}
}
但是,第二个下拉菜单(设备)根本没有显示,我不知道如何调试这个问题,因为我是 JSON 架构的新手。
如果有人能指导我走向正确的方向,或者提出任何其他方法来实现我想要的结果,我真的很感激。
非常感谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。