微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?