用于最终下拉填充的信息数组的“正确”JSON 格式

问题描述

因为我还没有实际的 JSON 源,所以这是一个小小的“马前推车”。 (仍在等待一些访问权限。)

因此,与此同时,我创建了一个 JSON,我相信它看起来像我正在收集的数据。最终我将控制生成它的 PHP,所以如果我离基地很远,它可能会有所不同。

在这里的最终目标是解析它并使用每一层来动态填充三个下拉列表,但我还没有开始为此编写 JavaScript。

我的问题是,对于想要按以下顺序动态填充三个下拉列表,这种 JSON 格式“正确”还是“合适”:

(IE。我会在页面加载时收集和解析 JSON 数据,然后只有第一个下拉列表会填充可能的组。然后在选择第一个下拉列表时,FY 的第二个下拉列表将填充可用的 FY 数据对于该组,然后在选择后,第三个下拉列表将填充该特定组/财年的可用季度数据。下拉列表将是被动的,因此如果该组发生更改,下拉列表将重置。)

HTML 下拉菜单(尚未动态生成):

<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]
}