draxq02664
2014-06-18 11:41
浏览 103
已采纳

无法使用非字符串键对json.marshal映射

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.

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

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条回答 默认 最新

相关推荐 更多相似问题