1 回答
TA贡献1873条经验 获得超9个赞
你想要的输出格式:
[["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 以来经过的毫秒数。在 Go 中,您可以time.Time使用其Time.UnixNano()方法从值中获取此值并将其除以1000000(从纳秒中获取毫秒),例如:
fmt.Println(time.Now().UnixNano() / 1000000) // Output: 1455526958178
请注意,为了在 JSON 输出中将时间值作为字符串,您必须将这些时间值作为strings添加到[]ChartElement. 要将此毫秒值转换为string,您可以使用strconv.FormatInt(),例如
t := time.Now().UnixNano() / 1000000
timestr := strconv.FormatInt(t, 10) // timestr is of type string
- 1 回答
- 0 关注
- 147 浏览
添加回答
举报