Javascript 如何基于JSON对象动态创建变量? 我有:外部JSON文件 我使用Ajax加载它们 我试图在JSON中基于这些数据创建变量,但我做不到

Javascript 如何基于JSON对象动态创建变量? 我有:外部JSON文件 我使用Ajax加载它们 我试图在JSON中基于这些数据创建变量,但我做不到,javascript,jquery,Javascript,Jquery,我显然失败了 当我试图画出第一张图表时,chart.draw(A,选项) 我得到 未捕获引用错误:未定义 为什么不chart.draw(data.A,选项)?似乎不需要变量。动态创建它们是可能的,但这几乎不需要付出代价。我只想从我的JSON中检索特定的数据。-不是所有的。将data.A抓住所有的东西吗?对,并且data.A只提供JSON的那部分。它只会给你那个子对象。与变量相同。请按照下面给出的答案进行后续操作。为什么不chart.draw(data.a,options)?似乎不需要变量。动态创

我显然失败了

当我试图画出第一张图表时,
chart.draw(A,选项)

我得到

未捕获引用错误:未定义


为什么不
chart.draw(data.A,选项)?似乎不需要变量。动态创建它们是可能的,但这几乎不需要付出代价。我只想从我的JSON中检索特定的数据。-不是所有的。将
data.A
抓住所有的东西吗?对,并且
data.A
只提供JSON的那部分。它只会给你那个子对象。与变量相同。请按照下面给出的答案进行后续操作。为什么不
chart.draw(data.a,options)?似乎不需要变量。动态创建它们是可能的,但这几乎不需要付出代价。我只想从我的JSON中检索特定的数据。-不是所有的。将
data.A
抓住所有的东西吗?对,并且
data.A
只提供JSON的那部分。它只会给你那个子对象。与变量相同。请按照下面给出的答案进行后续操作。为什么不
chart.draw(data.a,options)?似乎不需要变量。动态创建它们是可能的,但这几乎不需要付出代价。我只想从我的JSON中检索特定的数据。-不是所有的。将
data.A
抓住所有的东西吗?对,并且
data.A
只提供JSON的那部分。它只会给你那个子对象。与变量相同。请按照下面给出的答案进行后续操作。
{

    "A": {
        "section_num": "2.2",
        "problem_set": "Same",
        "start_time": "7/20/2015 10:00 am",
        "student_am": "9",
        "due_time": "7/20/2015 11:00 am",
        "submit": "9",
        "avg_score": "71",
        "danger": "0",
        "warning": "2",
        "success": "3"

    },

    "B": {
        "section_num": "2.2",
        "problem_set": "Not the same",
        "start_time": "6/19/2015 1:00 pm",
        "student_am": "23",
        "due_time": "6/19/2015 2:00 pm",
        "submit": "7",
        "avg_score": "82",
        "danger": "1",
        "warning": "2",
        "success": "2"

    },

    "C": {
        "section_num": "2.2",
        "problem_set": "Math",
        "start_time": "6/20/2015 2:00 pm",
        "student_am": "23",
        "due_time": "6/20/2015 3:00 pm",
        "submit": "3",
        "avg_score": "82",
        "danger": "0",
        "warning": "2",
        "success": "3"

    },

    "D": {
        "section_num": "2.2",
        "problem_set": "Anything",
        "start_time": "6/20/2015 7:00 am",
        "student_am": "25",
        "due_time": "6/20/2015 8:00 am",
        "submit": "9",
        "avg_score": "98",
        "danger": "1",
        "warning": "0",
        "success": "4"

    }
}
$.ajax({

      url: basePath + "data-r.json",
      type: "GET",
      dataType : "json",

      success: function( data ) {

         google.load("visualization", "1", {packages:["corechart"]});
         google.setOnLoadCallback(drawChart());

         function drawChart() {

           var options = {
            width: 160,
            height: 160,
            chartArea: {
              left: 10,
              top: 20,
              width: "100%",
              height: "100%"
            },


            colors: ['#F46E4E',  '#F9C262' , '#ADB55E',],
            legend: 'none',
            enableInteractivity: false,
            pieSliceText: 'none',

          };

          var chart = new google.visualization.PieChart(document.getElementById('piechart'));



          for (var object in data) {

            var total = data[object].danger + data[object].warning + data[object].success ;
            var object = google.visualization.arrayToDataTable([
            ['Piechart', 'Number of Skills'],
            ['danger',  ( data[object].danger/total )  * 100  ],
            ['warning', ( data[object].warning/total ) * 100  ],
            ['success', ( data[object].success/total ) * 100  ],
            ]);

          }

      chart.draw(A, options);

    }
for (var object in data) {

            var total = data[object].danger + data[object].warning + data[object].success ;
            var object = google.visualization.arrayToDataTable([
            ['Piechart', 'Number of Skills'],
            ['danger',  ( data[object].danger/total )  * 100  ],
            ['warning', ( data[object].warning/total ) * 100  ],
            ['success', ( data[object].success/total ) * 100  ],
            ]);

          }