2017-04-18 2 views
0

Frage AktualisiertHighchart Daten mit x, y-Werten golang struct

Vielen Dank an all meine unreife Frage gestellt letztes Mal für die Beantwortung, aber ich kann immer noch nicht herausfinden, wie das zu handhaben [x, y] Reihendaten .

Es funktioniert gut, wenn Daten ist ein einzelnes Array von ganzen Zahlen, aber ein Array von Struktur funktioniert nicht. Wie kann ich es lösen?

series: [{//should work like this 
    data: [ 
     ["1", 29.9], 
     ["2", 71.5], 
     ["3", 106.4] 
    ] 
}] 

type Line struct {//my struct 
Data []Point `json:"data"` //this is the tricky part 
} 

type Point struct { 
Date string 
Value int 
} 

<script> 
 
$(document).ready(function() { 
 
    var options = { 
 
     chart: { 
 
      renderTo: 'ERP_Chart', 
 
      type: 'spline' 
 
     }, 
 
     series: [] 
 
    }; 
 

 
    $.getJSON("/Get_ERP_Chart", function(data) { 
 
     options.series = data; 
 
     var chart = new Highcharts.Chart(options); 
 
    }); 
 
}); 
 
</script>

Mein serverseitige Go Code

type Line struct { 
Data []Point `json:"data"` //this is the tricky part... 
} 

type Point struct { 
Date string 
Value int 
} 

func showERPChart(writer http.ResponseWriter, request *http.Request) { 

var profit, expense, contacts Line 
var chart []Line 

rows, err := Db.Query("SELECT profit,expense,contacts,_date FROM Sells ORDER BY _date") 

var prof, exp, con int 
var date string 

for rows.Next() { 
    err = rows.Scan(&prof, &exp, &con, &date) 
    profit.Data = append(profit.Data, Point{date, prof}) 
    expense.Data = append(expense.Data, Point{date, exp}) 
    contacts.Data = append(contacts.Data, Point{date, con}) 
} 

chart = append(chart, profit) 
chart = append(chart, expense) 
chart = append(chart, contacts) 

js, _:= json.Marshal(chart) 

writer.Write(js) 
} 
+2

Bitte exportieren Sie Ihre Feldnamen, dh ändern Sie 'name string' in' Name string' usw. – mkopriva

Antwort

1

Für encoding/json so, wie Sie wollen arbeiten, müssen Sie Ihre Struktur Felder export.

Von encoding/json docs:

Struct Werte kodieren als JSON-Objekte. Jedes exportierte Strukturfeld wird ein Mitglied des Objekts, das den Feldname als das Objekt Schlüssel verwendet, außer das Feld wird aus einem der unten angegebenen Gründe weggelassen.

Das Gleiche gilt für Decodierung:

Abstellungs wird nur dann gesetzt exportiert Felder der Struktur.