2017-06-15 1 views
1

Ich habe versucht, dies für einige Zeit zu arbeiten und es kann nicht scheinen, die Lösung zu finden, um diese Arbeit zu machen.JSON, Highcharts und Coldfusion JSON-Daten

Ich kann JSON mit meinem Coldfusion CFC ohne Problem ausgeben, nicht ich versuche, dieses JSON mit Highcharts.js zu verwenden. Ich habe überprüft, dass der JSON gültig ist, aber Highcharts scheint ein Problem zu haben, weil in den Seriendaten doppelte Anführungszeichen um die Daten sind. Ich habe überall nach einer Lösung gesucht und ich kann keine Hilfe finden, die mich auf den richtigen Weg bringen könnte. Wenn ich die doppelten Anführungszeichen aus dem Array in der series.data entferne, lädt sich das Diagramm gut, aber ich bin davon überzeugt, dass es dynamisch ist.

Hier ist meine JSON Ausgabe von meinem CFC: `

{ 
    "series": [{ 
     "data": "[[Date.UTC(2017,05,21),2.9],[Date.UTC(2017,05,28),2.9],[Date.UTC(2017,06,04),3.1],[Date.UTC(2017,06,11),2.9]]", 
     "name": "ATC Main Pod A - B - C" 
    }, { 
     "data": "[[Date.UTC(2017,05,21),2.8],[Date.UTC(2017,05,28),2.6],[Date.UTC(2017,06,04),2.9],[Date.UTC(2017,06,11),2.9]]", 
     "name": "ATC Mays (ACB Blue)" 
    }, { 
     "data": "[[Date.UTC(2017,05,21),2.4],[Date.UTC(2017,05,28),2.6],[Date.UTC(2017,06,04),3],[Date.UTC(2017,06,11),3.2]]", 
     "name": "ATC Mays (ACB Purple)" 
    }, { 
     "data": "[[Date.UTC(2017,05,21),3.3],[Date.UTC(2017,05,28),3.3],[Date.UTC(2017,06,04),3.4],[Date.UTC(2017,06,11),3.3]]", 
     "name": "ATC R10 Pod D" 
    }, { 
     "data": "[[Date.UTC(2017,05,21),3.3],[Date.UTC(2017,05,28),3.4],[Date.UTC(2017,06,04),2.8],[Date.UTC(2017,06,11),1.9]]", 
     "name": "ATC TU Pod A - B" 
    }, { 
     "data": "[[Date.UTC(2017,05,21),2.9],[Date.UTC(2017,05,28),2.9],[Date.UTC(2017,06,04),3.1],[Date.UTC(2017,06,11),3.4]]", 
     "name": "CTRC 1st Floor" 
    }, { 
     "data": "[[Date.UTC(2017,05,21),2.9],[Date.UTC(2017,05,28),3.3],[Date.UTC(2017,06,04),3.2],[Date.UTC(2017,06,11),2.3]]", 
     "name": "CTRC 2nd Floor" 
    }] 
} 

Hier ist, was Aufruf sieht meine Ajax ist wie:

function loadChartData(c){ 
$.ajax({type: "POST", url: "CFCs/survey.cfc", data: {method:"results_RLU", CENTERID: c},dataType: 'json',success: function(data){ 
    options.series = data.series 
     var chart = new Highcharts.Chart(options) 
    } 
}); 
} 
+0

Alle Fehler in der JavaScript-Konsole, wenn Sie F12 getroffen? – mkaatman

+1

Sieht so aus, als wäre Ihre Eigenschaft 'data' selbst eine Zeichenfolge im JSON-Format. Sie müssen sie durchlaufen und JSON.parse für diese Werte aufrufen. –

+0

@ mkaatman, keine Fehler in der Konsole. – Th0raxe

Antwort

0

kein Problem!

Iterieren Sie einfach jedes Element in der Reihe und analysieren Sie die Daten zu einem gültigen JSON-Objekt. Genießen Sie

:)

function loadChartData(c){ 
$.ajax({type: "POST", url: "CFCs/survey.cfc", data: {method:"results_RLU", CENTERID: c},dataType: 'json',success: function(data){ 

    options.series = data.series.map(function(item) 
    { 
     item.data = JSON.parse(item.data); 

     return item; 
    }); 

    var chart = new Highcharts.Chart(options) 
    } 
}); 
} 
+0

Das wird funktionieren, ich muss meine Abfrage etwas ändern, es gefällt mir nicht, wie ich dieses Feld eingerichtet habe. '[Date.UTC (' || to_char (THEWEEKOF, 'JJJJ, MM, TT') || '),' || RUNDE (AVG (RATING), 1) || ']' DATEN – Th0raxe