我正在尝试将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
如何制作它以便我可以在同一个地图中包含字符串和整数?
由于
答案 0 :(得分:5)
使用map [string] interface {}:
mapD := map[string]interface{}{"deploy_status": "public", "status": "live", "version": 2}
答案 1 :(得分:1)
您尝试将int
类型的值用作字符串,但您的地图定义为[string]string
。您必须将第一行修改为:
mapD := map[string]string{"deploy_status": "public", "status": "live", "version": "2"}
如果您不知道值的类型,则可以改为使用interface{}
。