Fix - some parameters aren't structs but slices
This commit is contained in:
parent
9401840aca
commit
5da3972d73
@ -56,9 +56,20 @@ func (JSONMarshalerV1) Marshal(v interface{}) ([]byte, error) {
|
|||||||
|
|
||||||
f = v.FieldByName("Params")
|
f = v.FieldByName("Params")
|
||||||
if f.IsValid() {
|
if f.IsValid() {
|
||||||
arr := make([]interface{}, f.NumField())
|
var arr []interface{}
|
||||||
for i := 0; i < f.NumField(); i++ {
|
switch f.Kind() {
|
||||||
arr[i] = f.Field(i).Interface()
|
case reflect.Slice:
|
||||||
|
arr = make([]interface{}, f.Len())
|
||||||
|
for i := 0; i < f.Len(); i++ {
|
||||||
|
arr[i] = f.Index(i).Interface()
|
||||||
|
}
|
||||||
|
case reflect.Struct:
|
||||||
|
arr = make([]interface{}, f.NumField())
|
||||||
|
for i := 0; i < f.NumField(); i++ {
|
||||||
|
arr[i] = f.Field(i).Interface()
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return nil, InvalidValue
|
||||||
}
|
}
|
||||||
u.Params = arr
|
u.Params = arr
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user