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 ],
]);
}