一尘不染

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

go

我想将a转换map[int]stringjson,所以我想json.Marshal()可以解决这个问题,但是它说不支持type失败map[int]string。但是,如果我使用map带键字符串,它可以正常工作。

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

稍后在检查编组代码时,将进行显式检查,以查看键是否不是字符串并返回UnsupportedTypeError

为什么什至不能使用基元作为键?如果json标准不允许非字符串键,是否不应该json.Marshal将原语转换为字符串并将其用作键?


阅读 235

收藏
2020-07-02

共1个答案

一尘不染

这不是因为Go,而是因为Json:Json除了键字符串以外,不支持其他任何功能。

看看Json的语法:

pair
    string : value
string
    ""
    " chars "

完整的语法可在Json网站找到

不幸的是,要使用整数作为键,您必须事先将它们转换为字符串,例如,使用strconv.Itoa:并非由json软件包来完成此工作。

2020-07-02