您好我正在尝试设置一个基本的高图,但遇到了一个我一直在努力解决的问题。
我正在使用AJAX捕获JSON对象,并尝试将其显示为图形,但只显示标题标签,yAxis标签和系列。我的图表中的列和奇怪的xAxis(即使语法类似于yAxis)都在显示。
我有任何人都知道如何解决这个问题我将不胜感激。
我的HTML页面包含以下JS:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>e
我的HTML页面包含以下HTML / JQuery:
<div id="chart1" style="width:800px; height:300px;"></div>
<script language="javascript" type="text/javascript">
function chData (jsonData) {
$('#chart1').highcharts({
chart: {
type: 'column'
},
title: {
text: 'Test Chart'
},
xAxis: {
categories: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
},
yAxis: {
title: {
text: 'Values'
}
},
series: jsonData,
});
}
$(document).ready(function() {
$.ajax({
url: 'ChartData',
type: 'GET',
async: true,
dataType: "json",
success: function (jsonData) {
alert(JSON.stringify(jsonData)); // added to check valid JSON recieved
chData(jsonData);
}
});
});
</script>
另外,我的JSON对象(我在验证器中检查过,并由url:'ChartData'返回)显示为:
def chartItems
@tmp2 = ["{"\name"\:"\rainydays"\},{"\data"\:[8, 14, 12, 16, 13, 23, 15]}"]
logger.info(@tmp2)
render json: @tmp2
end
我在highcharts的网站上也浏览过这些文档,并尝试集成更多代码(例如在这个http://jsfiddle.net/gh/get/jquery/1.9.1/highslide-software/highcharts.com/tree/master/samples/highcharts/demo/column-basic/中找到的'plotOptions')但是尽管尝试了很多东西才能让它工作,但不幸的是没有什么对我有用。
如果有人能够提供帮助,我们将非常感激。
感谢。
答案 0 :(得分:0)
数组中的数据是字符串而不是javascript对象。
[-->"<--{\"name\":\"rainydays\"},{\"data\":[8, 14, 12, 16, 13, 23, 15]}-->"<--]
我用 - &gt;“&lt; - 突出显示了违规报价。
你还有额外的括号:
[{"name\":\"rainydays\"-->}<--,-->{<--\"data\":[8, 14, 12, 16, 13, 23, 15]}]
最后,我不确定为什么你的字符串被转义了。您的最终数据需要如下所示:
[{"name":"rainydays","data":[8, 14, 12, 16, 13, 23, 15]}]
我不是一个红宝石的家伙,但我想你想要这个:
@tmp2 = [{:name=>"rainydays",:data=>[8, 14, 12, 16, 13, 23, 15]}]