fix could not convert int
This commit is contained in:
parent
be889b2f81
commit
81d8d7b73f
1 changed files with 7 additions and 5 deletions
12
api/types.go
12
api/types.go
|
@ -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 {
|
||||||
|
|
Loading…
Reference in a new issue