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 ?
It's not because of Go, but because of Json: Json does not support anything else than strings for keys.
Have a look a the grammar of Json:
pair
string : value
string
""
" chars "
The full grammar is available on the Json website.
Unfortunately, to use integers as keys, you must convert them to string beforehand, for instance using strconv.Itoa
: it is not up to the json
package to do this work.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With