Go:javascript的格式结构(没有键的json)

我必须为图表形成一段结构。编组它,然后返回到前端小部件。小部件正在等待这样的格式:


[["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:""`

}

我现在有两个主要问题:


如何制作没有键的 json,但只有 2 个带有逗号的值?

如何将日期或时间正确转换为 javascript 毫秒?


慕的地6264312
浏览 148回答 1
1回答

眼眸繁星

你想要的输出格式:[["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() / 1000000timestr := strconv.FormatInt(t, 10) // timestr is of type string
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go