【发布时间】:2012-04-02 22:59:13
【问题描述】:
我正在尝试使用amcharts,并且我想使用 JSON 来格式化我的图表的数据。但是,amcharts 接受的语法似乎不是有效的 JSON。
这是硬编码 amchart 图表数据的 javascript 代码:
var chartData = [{
country: "Czech Republic",
litres: 301.90
}];
如果我想用嵌入的 ruby 创建相同的图表,下面是代码:
控制器
@chart_data = [{"country": "Czech Republic", "litres": 301.90}]
查看
var chartData = <%= @chart_data.to_json %>;
valid JSON 输出:
[{"country": "Czech Republic", "litres": 301.90}]
然而,amcharts 接受的是:
[{country: "Czech Republic", litres: 301.90}]
因此我的图表无法正常工作,因为 amcharts 不接受有效的 JSON。那么有没有一种方法可以在没有国家和升的双引号的情况下创建“无效”JSON?或者有没有更好的方法以 amcharts 接受的形式获取数据?任何帮助将不胜感激。
这里是完整的 javascript:
<script type="text/javascript">
var chart;
var legend;
var chartData = [{
country: "Czech Republic",
litres: 301.90
}, {
country: "Ireland",
litres: 201.10
}, {
country: "Germany",
litres: 165.80
}, {
country: "Australia",
litres: 139.90
}, {
country: "Austria",
litres: 128.30
}, {
country: "UK",
litres: 99.00
}, {
country: "Belgium",
litres: 60.00
}];
AmCharts.ready(function () {
// PIE CHART
chart = new AmCharts.AmPieChart();
chart.dataProvider = chartData;
chart.titleField = "country";
chart.valueField = "litres";
chart.outlineColor = "#FFFFFF";
chart.outlineAlpha = 0.8;
chart.outlineThickness = 2;
// WRITE
chart.write("chartdiv");
});
</script>
【问题讨论】:
-
您能否提供一个调用 amcharts 的示例?
-
嗨,乔,我在上面添加了一个完整的 javascript 示例。除此之外,唯一的其他部分是包括可以从他们的网站下载的 amcharts.js 文件。我希望这就是你的意思。如果没有,请告诉我。
-
在您给出的示例中,amCharts 不会读取 JSON,但浏览器的 JS 引擎会读取,然后代码将结果对象传递给 amCharts。但是任何浏览器都应该处理正确的 JSON 解析。这里到底发生了什么?
标签: ruby-on-rails ruby-on-rails-3 json graph amcharts