I have a json message that needs to be unmarshaled to a struct which has some big.Float
fields from the math
package. The json field is of type numeric. It gives me err = json: cannot unmarshal string into Go value of type *big.Float
.
I wonder why it complains "cannot unmarshal string" since my json field is numeric type. And what do I need to do to unmarshal the json filed to a *big.Float
field.
Example:
type Msg struct {
Usage0 *big.Float
Usage1 *big.Float
Usage2 *big.Float
}
// jsonMsg = {'Usage0': 31241.4543, "Usage1": 54354325423.65, ...}
err := json.Unmarshal(jsonMsg, &msg)
It appears to me (based on the docs) that it expects the json for big.Float
to be passed in as strings. This play proves that to work:
https://play.golang.org/p/7XKn2hhXRD
If you cannot control the json then you can implement your own unmarshaller as an alternative.
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