I want to unmarshal the following JSON data in Go:
b := []byte(`{\"Asks\": [[21, 1], [22, 1]] ,\"Bids\": [[20, 1], [19, 1]]}`)
I know how t
You can do this with by implementing the json.Unmarshaler interface on your Order
struct. Something like this should do:
func (o *Order) UnmarshalJSON(data []byte) error {
var v [2]float64
if err := json.Unmarshal(data, &v); err != nil {
return err
}
o.Price = v[0]
o.Volume = v[1]
return nil
}
This basically says that the Order
type should be decoded from a 2 element array of floats rather than the default representation for a struct (an object).
You can play around with this example here: http://play.golang.org/p/B35Of8H1e6