假设我具有以下数据结构
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"
}
]
}
]
}
]
因此,我正在寻找一种数据结构,该结构允许我根据自己的布局生成引擎中此处选择的值进行下拉。
答案 0 :(得分:4)
您是否考虑过扁平化结构,以便更轻松地查找选项和子选项?
让我们想象一下,您已经为根选项有了一个初始数组:
[
'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'
}
}
我希望这能回答您的问题,并且很容易解释。