code: func (f *Float64) UnmarshalJSON(data []byte) error {
  
  	// Attempt parsing the float normally
  	v, err := strconv.ParseFloat(string(data), 64)
  
  	// Attempt parsing the float as a string
  	if err != nil {
  		if len(data) < 2 || data[0] != '"' || data[len(data)-1] != '"' {
  			return fmt.Errorf("malformed data")
  		}
  
  		v, err = strconv.ParseFloat(string(data[1:len(data)-1]), 64)
  		if err != nil {
  			return err
  		}
  	}
  	*f = Float64(v)
  	return nil
  }
docs: // UnmarshalJSON statisied the json.Unmarshaler interface