Golang - 将数组/映射转换为JSON

时间:2016-04-18 09:17:17

标签: json go

我正在尝试将map []转换为JSON,以便将其作为请求的一部分发布。但我的map []有各种类型,包括字符串/整数。

我目前有:

mapD := map[string]string{"deploy_status": "public", "status": "live", "version": 2}
mapB, _ := json.Marshal(mapD)
fmt.Println(string(mapB))

//output
prog.go:17: cannot use 2 (type int) as type string in map value

如何制作它以便我可以在同一个地图中包含字符串和整数?

由于

2 个答案:

答案 0 :(得分:5)

使用map [string] interface {}:

mapD := map[string]interface{}{"deploy_status": "public", "status": "live", "version": 2}

playground

答案 1 :(得分:1)

您尝试将int类型的值用作字符串,但您的地图定义为[string]string。您必须将第一行修改为:

mapD := map[string]string{"deploy_status": "public", "status": "live", "version": "2"}

如果您不知道值的类型,则可以改为使用interface{}