JSON 模式 - 基于另一个下拉列表在下拉列表中显示值

问题描述

我已经定义了 JSON Schema 并且我正在使用 JSON Editor 来呈现一个具有两个下拉列表(品牌和设备)的表单,并且预期的表单如下所示:

enter image description here

品牌下拉列表包含 3 个值:

  • 苹果
  • 谷歌
  • 戴尔

同样,设备下拉列表也包含 3 个值:

  • 笔记本电脑
  • 平板电脑
  • 电话

但是,在Devices下拉列表中呈现值是有条件的,条件如下:

  1. 如果设备戴尔,则只需将笔记本电脑平板电脑显示为设备
  2. 否则显示所有可用设备

我已经使用了 JSON 模式草案 7 的 If thenelse 来实现预期的结果,到目前为止我的解决方案如下所示(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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...