Javascript getJSON方法不起作用
下面是我的代码,其中getJSON方法不起作用Javascript getJSON方法不起作用,javascript,jquery,asp.net,json,Javascript,Jquery,Asp.net,Json,下面是我的代码,其中getJSON方法不起作用 function loadJson() { $(document).ready(function () { alert("inside"); var chart; var url = "values.json"; var seriesData = []; var xCategories = [];
function loadJson() {
$(document).ready(function () {
alert("inside");
var chart;
var url = "values.json";
var seriesData = [];
var xCategories = [];
var i, cat;
alert("outside");
$.getJSON(url, function (data) {
alert("inside JSON function");
for (i = 0; i < data.length; i++) {
cat = '' + data[i].period_name;
if (xCategories.indexOf(cat) === -1) {
xCategories[xCategories.length] = cat;
}
}
for (i = 0; i < data.length; i++) {
if (seriesData) {
var currSeries = seriesData.filter(function (seriesObject) {
return seriesObject.name == data[i].series_name;
}
);
if (currSeries.length === 0) {
seriesData[seriesData.length] = currSeries = { name: data[i].series_name, data: [] };
} else {
currSeries = currSeries[0];
}
var index = currSeries.data.length;
currSeries.data[index] = data[i].period_final_value;
}
else {
seriesData[0] = { name: data[i].series_name, data: [data[i].period_final_value] }
}
}
//var chart;
//$(document).ready(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'bar'
},
title: {
text: 'Stacked column chart'
},
xAxis: {
categories: xCategories
},
yAxis: {
//min: 0,
//max: 100,
title: {
text: 'Total fruit consumption'
},
stackLabels: {
enabled: false,
style: {
fontWeight: 'bold',
color: (Highcharts.theme && Highcharts.theme.textColor) || 'gray'
}
}
},
legend: {
align: 'right',
x: -100,
verticalAlign: 'top',
y: 20,
floating: true,
backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColorSolid) || 'white',
borderColor: '#CCC',
borderWidth: 1,
shadow: false
},
tooltip: {
formatter: function () {
return '<b>' + this.x + '</b><br/>' +
this.series.name + ': ' + this.y + '<br/>'
}
},
series: seriesData
});
});
});
}
文件呈现,但数据未显示在图表上,只有getJSON方法外部的警报起作用,内部警报不起作用,相同的代码如果我尝试从html页面运行,那么它可以正常工作,但现在我在ASP.NET Web应用程序中编写了VS中的整个代码,我在javascript中调用了body onLoad上的loadJson函数,如下所示,
<body onload="loadJson();">
但是这个方法没有运行,
无法解决此问题,任何帮助都将不胜感激
----------附加工作------
当我将我的JSON数据添加到getJSON方法之上的任何变量中,并删除getJSON方法并访问它时,我就可以正确地获取图形,但是当我使用getJSON方法时,它就不起作用了
function loadJson() {
$(document).ready(function () {
alert("inside");
var chart;
var url = "values.json";
var seriesData = [];
var xCategories = [];
var i, cat;
alert("outside");
$.getJSON(url, function (data) {
alert("inside JSON function");
for (i = 0; i < data.length; i++) {
cat = '' + data[i].period_name;
if (xCategories.indexOf(cat) === -1) {
xCategories[xCategories.length] = cat;
}
}
for (i = 0; i < data.length; i++) {
if (seriesData) {
var currSeries = seriesData.filter(function (seriesObject) {
return seriesObject.name == data[i].series_name;
}
);
if (currSeries.length === 0) {
seriesData[seriesData.length] = currSeries = { name: data[i].series_name, data: [] };
} else {
currSeries = currSeries[0];
}
var index = currSeries.data.length;
currSeries.data[index] = data[i].period_final_value;
}
else {
seriesData[0] = { name: data[i].series_name, data: [data[i].period_final_value] }
}
}
//var chart;
//$(document).ready(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'bar'
},
title: {
text: 'Stacked column chart'
},
xAxis: {
categories: xCategories
},
yAxis: {
//min: 0,
//max: 100,
title: {
text: 'Total fruit consumption'
},
stackLabels: {
enabled: false,
style: {
fontWeight: 'bold',
color: (Highcharts.theme && Highcharts.theme.textColor) || 'gray'
}
}
},
legend: {
align: 'right',
x: -100,
verticalAlign: 'top',
y: 20,
floating: true,
backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColorSolid) || 'white',
borderColor: '#CCC',
borderWidth: 1,
shadow: false
},
tooltip: {
formatter: function () {
return '<b>' + this.x + '</b><br/>' +
this.series.name + ': ' + this.y + '<br/>'
}
},
series: seriesData
});
});
});
}
-----错误检查----------
我检查了chrome中的错误,知道它无法获取json文件,我将json文件保存在项目文件夹中,然后我还尝试将json文件保存在localhost中,仍然显示相同的错误
现在我想我在使用aspx页面处理mime类型时遇到了问题..是否有任何链接....使用not like
并检查您的json
是否有效
或不
(检查控制台中是否有json选项卡
)使用不一样
并检查您的json
是否有效
或不
(检查控制台中是否有json选项卡
)使用不一样
并检查您的json
是否有效
或不
(检查控制台中是否有json选项卡
)使用不一样
并检查您的json
是否有效
或不
(检查json选项卡
是否位于控制台中
)文件调用是否有错误
请尝试以下操作:
$.getJSON(url)
.done(function(data) {
alert("INSIDE FUNCTION")
})
.fail(function(jqXHR, textStatus) {
alert("Request failed: " + textStatus);
});
我主要在所有jQueryAjax(和包装器)调用中使用这种编码风格,因此如果需要,我可以给用户一个响应
请求失败。调用文件时是否有错误
请尝试以下操作:
$.getJSON(url)
.done(function(data) {
alert("INSIDE FUNCTION")
})
.fail(function(jqXHR, textStatus) {
alert("Request failed: " + textStatus);
});
我主要在所有jQueryAjax(和包装器)调用中使用这种编码风格,因此如果需要,我可以给用户一个响应
请求失败。调用文件时是否有错误
请尝试以下操作:
$.getJSON(url)
.done(function(data) {
alert("INSIDE FUNCTION")
})
.fail(function(jqXHR, textStatus) {
alert("Request failed: " + textStatus);
});
我主要在所有jQueryAjax(和包装器)调用中使用这种编码风格,因此如果需要,我可以给用户一个响应
请求失败。调用文件时是否有错误
请尝试以下操作:
$.getJSON(url)
.done(function(data) {
alert("INSIDE FUNCTION")
})
.fail(function(jqXHR, textStatus) {
alert("Request failed: " + textStatus);
});
我主要在所有jQueryAjax(和包装器)调用中使用这种编码风格,因此如果需要,我可以给用户一个响应
请求失败。发现您的JSON存在问题
[{"series_name":"Actual","period_name":"Q1 / 2013","period_final_value":17},
{"series_name":"Actual","period_name":"Q2 / 2013","period_final_value":15},
{"series_name":"Actual","period_name":"Q3 / 2013","period_final_value":13},
{"series_name":"Actual","period_name":"Q4 / 2013","period_final_value":19},]
它不是一个有效的JSON,因为,
就在]
括号之前。发现您的JSON有问题
[{"series_name":"Actual","period_name":"Q1 / 2013","period_final_value":17},
{"series_name":"Actual","period_name":"Q2 / 2013","period_final_value":15},
{"series_name":"Actual","period_name":"Q3 / 2013","period_final_value":13},
{"series_name":"Actual","period_name":"Q4 / 2013","period_final_value":19},]
它不是一个有效的JSON,因为,
就在]
括号之前。发现您的JSON有问题
[{"series_name":"Actual","period_name":"Q1 / 2013","period_final_value":17},
{"series_name":"Actual","period_name":"Q2 / 2013","period_final_value":15},
{"series_name":"Actual","period_name":"Q3 / 2013","period_final_value":13},
{"series_name":"Actual","period_name":"Q4 / 2013","period_final_value":19},]
它不是一个有效的JSON,因为,
就在]
括号之前。发现您的JSON有问题
[{"series_name":"Actual","period_name":"Q1 / 2013","period_final_value":17},
{"series_name":"Actual","period_name":"Q2 / 2013","period_final_value":15},
{"series_name":"Actual","period_name":"Q3 / 2013","period_final_value":13},
{"series_name":"Actual","period_name":"Q4 / 2013","period_final_value":19},]
它不是有效的JSON,因为,
就在]
括号之前。1)请确保您使用的是有效的JSON:www.jsonlint.com
2) 在本地主机上运行json文件。如果您看到浏览器上的json文件在localhost上运行,请告诉我。确保您的web.config中有此项
<system.webServer>
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
</system.webServer>
4) 通过这些测试后,继续构建jQuery代码。1)确保使用的是有效的json:www.jsonlint.com
2) 在本地主机上运行json文件。如果您看到浏览器上的json文件在localhost上运行,请告诉我。确保您的web.config中有此项
<system.webServer>
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
</system.webServer>
4) 通过这些测试后,继续构建jQuery代码。1)确保使用的是有效的json:www.jsonlint.com
2) 在本地主机上运行json文件。如果您看到浏览器上的json文件在localhost上运行,请告诉我。确保您的web.config中有此项
<system.webServer>
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
</system.webServer>
4) 通过这些测试后,继续构建jQuery代码。1)确保使用的是有效的json:www.jsonlint.com
2) 在本地主机上运行json文件。如果您看到浏览器上的json文件在localhost上运行,请告诉我。确保您的web.config中有此项
<system.webServer>
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
</system.webServer>
4) 通过这些测试后,继续构建jQuery代码。您的问题非常不清楚。您谈论的是getJSON
,但您使用的是$.get
。然后你提到图表的数据没有更新,但没有显示图表的代码,甚至告诉我们它是什么类型的图表…?json数据无效-请参阅@Rorymcrossan。。我将更新这个问题,它是getJSON,但我更改它是为了测试。@amdixon。。这个json是有效的,我已经使用JavaScriptSerializer的serialize方法序列化了json文件。我们的问题很不清楚。您谈论的是getJSON
,但您使用的是$.get
。然后你提到图表的数据没有更新,但没有显示图表的代码,甚至告诉我们它是什么类型的图表…?json数据无效-请参阅@Rorymcrossan。。我将更新这个问题,它是getJSON,但我更改它是为了测试。@amdixon。。这个json是有效的,我已经使用JavaScriptSerializer的serialize方法序列化了json文件。我们的问题很不清楚。您谈论的是getJSON
,但您使用的是$.get
。然后你提到图表的数据没有更新,但没有显示图表的代码,甚至告诉我们它是什么类型的图表…?json数据无效-请参阅@Rorymcrossan。。我将更新这个问题,它是getJSON,但我更改它是为了测试。@amdixon。。这个json是有效的,我已经使用JavaScriptSerializer的serialize方法序列化了json文件。我们的问题很不清楚。您谈论的是getJSON
,但您使用的是$.get
。那你是曼蒂吗