【发布时间】:2018-05-22 00:47:24
【问题描述】:
我正在尝试使用 golang 中的 JSON.Marshal() 从地图创建 JSON 字符串。但是,int 值显示为用双引号括起来的字符串。
我的代码正在输出:
{ "age":
{
"$gt":"22",
"$lt":"20"
},
"location":
{
"$eq":"london"
},
"name":{
"$eq":"fred"
}
}
而不是
{ "age":
{
"$gt":22,
"$lt":20
},
"location":
{
"$eq":"london"
},
"name":{
"$eq":"fred"
}
}
我正在使用:
var output_map = map[string]map[string]string{}
//Populate map here
output_json, err := json.Marshal(output_map)
if err!= nil {
fmt.Println("Error encoding JSON")
}
fmt.Println(output_json)
我的理解是,如果提供整数,JSON.Marshal() 将正确打印整数,但我的地图不包含整数。我可以将我的地图更改为 map[string]map[string]int{} 但它不会包含“name”和“location”的字符串值。
最终的问题是我需要地图同时包含 int 和 string 值。某种地图[字符串]地图[字符串]{}。
我怎样才能做到这一点?提前谢谢你。
哈利
【问题讨论】:
标签: json go types marshalling