json - JSON Schema - 基于所选值的下拉列表 其他下拉列表
问题描述
假设我有以下数据结构
Option A
Option B
Option B1
Option B2.1
Option B2.2
我正在尝试创建一个允许这样做的枚举结构,以便我可以根据先前选择的下拉列表的值生成一个下拉列表。
例子 :
Select option A -> No additional dropdowns
Select option B -> Generate dropdown with Option B1
Select option B1 -> Generate dropdown with Option B2.1 and Option B2.2
当您想创建一个带有 childeren 的数组时,这将起作用 枚举是否有类似的可能
{
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"medicine": {
"type": "object",
"properties": {
"value": { "type": "string" },
"categories": {
"type": "array",
"items": { "$ref": "#/definitions/medicine" }
}
}
}
},
"properties": {
"person": { "$ref": "#/definitions/medicine" }
}
}
然后枚举结构是这样的
[
{
"value ": "Option A"
},
{
"value ": "Option B ",
"categories ": [
{
"value ": "Option B1 ",
"categories ": [
{
"value ": "Option B1.1"
},
{
"value ": "Option B1.2"
}
]
}
]
}
]
所以我正在寻找一种数据结构,它允许我在自己的布局生成引擎中根据此处选择的值进行下拉菜单。
解决方案
您是否考虑过扁平化您的结构,以便更容易查找选项和子选项?
假设您有一个根选项的初始数组:
[
'opt_a',
'opt_b'
]
然后你有一个所有选项的平面图,你可以从中派生标签和后续下拉列表:
{
opt_a: {
label: 'Option A'
},
opt_b: {
label: 'Option B',
children: ['opt_b1']
},
opt_b1: {
label: 'Option B1',
children: ['opt_b11', 'opt_b12']
}
opt_b11: {
label: 'Option B1.1'
}
opt_b12: {
label: 'Option B1.2'
}
}
我希望这能回答你的问题并且足够不言自明。
推荐阅读
- google-apps-script - 新文档上未触发主页触发器(添加 Google 工作区)
- apache-kafka - 如何理解 Kafka HA?
- nginx - 您如何将 NGINX 指向多个站点的标准 PHP?
- docker - Kubernetes 服务:随机连接被拒绝
- database - typeorm 中的复杂查询
- python - 使用 dask 作为并行后端时的问题
- string - VIsual Basic Strings.Trim(String) 方法和 .NET String.Trim 方法有区别吗?
- php - 使用通配符键从数组中提取键和值
- ansible - Ansible 不接受客户失败模块
- javascript - 无法读取未定义的属性 - 小的随机报价应用程序错误