2014-06-18 11:41
浏览 103


I want to convert a map[int]string to json, so I thought json.Marshal() would do the trick, but it fails saying unsupported type map[int]string. But whereas if I use a map with key string it works fine.


Later on inspection of the marshaller code, there is an explicit check to see if the key is not string and returns UnsupportedTypeError...

Why can't I even use primitives as keys? If json standard doesn't allow non string keys, shouldn't json.Marshal convert the primitives to string and use them as keys ?

图片转代码服务由CSDN问答提供 功能建议

我想将 map [int] string </ code>转换为 json </ code>,所以我认为 json.Marshal()</ code>可以解决问题,但无法说明不受支持的类型 map [int] string </ code>。 但是,如果我使用带有键字符串的 map </ code>可以正常工作。</ p>

http://play.golang.org/p/qhlS9Nt8qQ </ p>

稍后在检查编组程序代码时,需要进行明确检查 如果键不是字符串并返回 UnsupportedTypeError </ code> ... </ p>

为什么我什至不能使用基元作为键? 如果json标准不允许非字符串键,则 json.Marshal </ code>不应将原语转换为字符串并将其用作键吗?</ p> </ div>

1条回答 默认 最新

相关推荐 更多相似问题