我正在尝试使用JSON.Marshal()在golang中从一个Map中创建JSON字符串。但是,整数值以双引号括起来的字符串形式显示。
我的代码输出:
{ "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类型的值。类似map[string]map[string]{}。
我该怎么做呢?先感谢您。
Harry