问题描述
因为我还没有实际的 JSON 源,所以这是一个小小的“马前推车”。 (仍在等待一些访问权限。)
因此,与此同时,我创建了一个 JSON,我相信它看起来像我正在收集的数据。最终我将控制生成它的 PHP,所以如果我离基地很远,它可能会有所不同。
我在这里的最终目标是解析它并使用每一层来动态填充三个下拉列表,但我还没有开始为此编写 JavaScript。
我的问题是,对于想要按以下顺序动态填充三个下拉列表,这种 JSON 格式“正确”还是“合适”:
(IE。我会在页面加载时收集和解析 JSON 数据,然后只有第一个下拉列表会填充可能的组。然后在选择第一个下拉列表时,FY 的第二个下拉列表将填充可用的 FY 数据对于该组,然后在选择后,第三个下拉列表将填充该特定组/财年的可用季度数据。下拉列表将是被动的,因此如果该组发生更改,下拉列表将重置。)
<div class="form-group"><label>Choose Group</label>
<select id="Portfolio" class="form-control">
<option value="value1">Group1</option>
<option value="value2">Group2</option>
<option value="value3">Group3</option>
</select></div>
<div class="form-group">
<div class="form-group">
<label>Choose FY</label>
<select id="FiscalYear" class="form-control">
<option value="value1">FY19</option>
<option value="value2">FY20</option>
<option value="value3">FY21</option>
</select></div>
<label>Choose Quarter</label>
<select id="Quarter" class="form-control">
<option value="value1">Q1</option>
<option value="value2">Q2</option>
<option value="value3">Q3</option>
<option value="value4">Q4</option>
</select></div>
建议的 JSON 格式:
{
"FY19": [{
"q1": [{
"Group1": [{
"Rate1": 91.4,"Rate2": 10.5,"Rate3": 97.5,"Rate4": 24,"Rate5": 97.5,"Rate6": 14.03,"Rate7": 74,"Rate8": 20,"Rate9": 69
}],"Group2": [{
"Rate1": 91.4,"Group3": [{
"Rate1": 91.4,"Rate9": 69
}]
}],"q2": [{
"Group1": [{
"Rate1": 91.4,"q3": [{
"Group1": [{
"Rate1": 91.4,"q4": [{
"Group1": [{
"Rate1": 91.4,"Rate9": 69
}]
}]
}],"FY20": [{
"q1": [{
"Group1": [{
"Rate1": 91.4,"FY21": [{
"q1": [{
"Group1": [{
"Rate1": 91.4,"Rate9": 69
}]
}]
}]
}
解决方法
对于每个组,您可能希望将每个键值对设为一个对象。
{
"FY19": [
{
"q1": [
{
"group1": [
{
"Rate1": 90
}]
}]
}],// "FY20": [... and so on]
}