我想转换map[int]string为json,所以我认为json.Marshal()会做的伎俩,但它不能说不支持的类型map[int]string.但是如果我使用map带键字符串它可以正常工作.
http://play.golang.org/p/qhlS9Nt8qQ
稍后检查marshaller代码,有一个明确的检查,看看该键是否不是字符串并返回UnsupportedTypeError...
为什么我甚至不能使用原语作为键?如果json标准不允许非字符串键,不应该json.Marshal将原语转换为字符串并将它们用作键?
jul*_*enc 13
这不是因为Go,而是因为Json:Json不支持键的字符串以外的任何东西.
看看Json的语法:
pair
string : value
string
""
" chars "
Run Code Online (Sandbox Code Playgroud)
不幸的是,要使用整数作为键,您必须事先将它们转换为字符串,例如使用strconv.Itoa:它不是由json包来完成这项工作.