fix could not convert int

This commit is contained in:
Michael Yang 2023-08-10 16:18:55 -07:00
parent be889b2f81
commit 81d8d7b73f

View file

@ -218,13 +218,15 @@ func (opts *Options) FromMap(m map[string]interface{}) error {
if field.IsValid() && field.CanSet() { if field.IsValid() && field.CanSet() {
switch field.Kind() { switch field.Kind() {
case reflect.Int: case reflect.Int:
// when JSON unmarshals numbers, it uses float64 by default, not int switch t := val.(type) {
val, ok := val.(float64) case int64:
if !ok { field.SetInt(t)
case float64:
// when JSON unmarshals numbers, it uses float64, not int
field.SetInt(int64(t))
default:
log.Printf("could not convert model parmeter %v to int, skipped", key) log.Printf("could not convert model parmeter %v to int, skipped", key)
continue
} }
field.SetInt(int64(val))
case reflect.Bool: case reflect.Bool:
val, ok := val.(bool) val, ok := val.(bool)
if !ok { if !ok {