map[string]interface{}
タイプを使用してGo内にJSON表現を作成しようとしています。私はJSON文字列を扱っています。私はJSONのunmarshalerが自動的に数値をfloat64として扱うのを避ける方法を考え出すのに苦労しています。その結果、次のエラーが発生します。Go:JSON文字列をマップに変換する[文字列] interface {}
例。 "{ 'a' : 9223372036854775807}"
はmap[string]interface{} = [a 9223372036854775807
する必要がありますが、現実には、私は構造体は、json.Number
を使用することによって、これを回避するために使用することができますが、私は本当に上記指定map
タイプを使用して好むどのように検索map[string]interface{} = [a 9.2233720368547758088E18]
です。
JSONのデフォルトでは、すべての数値にfloat64を使用しています(https://golang.org/pkg/encoding/json/#Unmarshal)。それを整数にしたい場合は、整数値(例: 'map [string] int'または' struct {a int} ')を持つ宛先に非整列化する必要があります。それは浮動小数点型であり、単純にint型に変換することを受け入れます。 – Kaedys
私は、Goの 'encoding/json'がデフォルトで、jsonの数字にfloat64を使うことを知っています。大規模なint64値を扱う場合、型変換は最も簡単な解決策になります。私は、カスタムマーシャラを書くかマップの種類を指定する必要があると思います。ありがとう – Steven