[英]Go : format struct for javascript (json without keys)
我必須為圖表形成一部分結構。 封送它,然后返回到前端小部件。 窗口小部件正在等待這樣的格式:
[["1455523840380",1],["1455523840383",2],["1455523840384",3]]
但是我的數據是這樣的:
[{"Time":1.45552462158e+12,"Value":1},{"Time":1.45552462158e+12,"Value2},{"Time":1.45552462158e+12,"Value3}]
我的切片結構如下所示:
type ChartElement struct {
Time int `json:""`
Value int `json:""`
}
我現在有兩個主要的麻煩:
您想要的輸出格式:
[["1455523840380",1],["1455523840383",2],["1455523840384",3]]
在JSON中,它不是結構數組,而是數組數組。
由於“內部”數組具有各種類型(字符串和數字),因此可以像下面這樣建模:
type ChartElement []interface{}
您可以像這樣填充它:
s := []ChartElement{{"1455523840380", 1}, {"1455523840383", 2}, {"1455523840384", 3}}
如果將其封送為JSON:
data, err := json.Marshal(s)
fmt.Println(string(data), err)
輸出是您期望的:
[["1455523840380",1],["1455523840383",2],["1455523840384",3]] <nil>
時間值(例如1455523840380
是自1970年1月1日UTC以來經過的毫秒數。 在圍棋,你可以從一個得到這個值time.Time
其價值Time.UnixNano()
方法,然后除以1000000
(擺脫納秒毫秒),例如:
fmt.Println(time.Now().UnixNano() / 1000000) // Output: 1455526958178
請注意,為了使時間值在JSON輸出中作為字符串,您必須在[]ChartElement
中將這些時間值作為string
s添加。 要將毫秒值轉換為string
,可以使用strconv.FormatInt()
,例如
t := time.Now().UnixNano() / 1000000
timestr := strconv.FormatInt(t, 10) // timestr is of type string
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.