Verwendung von JSON in amcharts - so ändern Sie eine JSON-Ausgabe (Ruby on Rails)

Ich versuche, mit amcharts und ich möchte JSON verwenden, formatieren Sie die Daten für mein Diagramm. Es scheint jedoch, dass die syntax, die amcharts akzeptiert ist kein gültiges JSON.

Hier ist der javascript-code für die Daten, die für eine Feste amchart Diagramm:

 var chartData = [{
            country: "Czech Republic",
            litres: 301.90
        }];

Hier ist der code, wenn ich will erstellen Sie die gleiche Grafik mit embedded ruby:

Controller

 @chart_data = [{"country": "Czech Republic", "litres": 301.90}]

Ansicht

 var chartData = <%= @chart_data.to_json %>;

Den gültiges JSON Ausgabe:

 [{"country": "Czech Republic", "litres": 301.90}]

Jedoch, was amcharts akzeptiert ist:

 [{country: "Czech Republic", litres: 301.90}]

Daher meine Grafik funktioniert nicht, weil amcharts nicht akzeptiert gültiges JSON. So ist es ein Weg, um "ungültige" JSON ohne die Anführungszeichen rund um Land und Liter? Oder gibt es einen besseren Weg, um die Daten in der form amcharts akzeptiert? Jegliche Hilfe würde sehr geschätzt werden.

Hier ist der vollständige 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>
  • Können Sie ein Beispiel geben, den Anruf, den Sie machen, zu amcharts?
  • Hallo Joe, ich fügte hinzu, ein Beispiel für den vollständigen javascript-oben. Zusammen mit, dass, der einzige andere Teil, einschließlich der amcharts.js die Datei kann heruntergeladen werden von Ihrer website. Ich hoffe, dass ist was du meintest. Wenn nicht, lass es mich wissen.
  • In dem Beispiel, das Sie geben, amCharts nicht Lesen der JSON -, sondern der browser die JS-engine hat, dann code übergibt das resultierende Objekt zu amCharts. Aber jeder browser sollte in der Lage Parsen richtige JSON. Was ist hier wirklich passiert?
InformationsquelleAutor diasks2 | 2012-04-02
Schreibe einen Kommentar