0.2.0 #10
|
@ -66,27 +66,12 @@ func parseParameter(data interface{}) (interface{}, error) {
|
||||||
/* (1) []string -> recursive */
|
/* (1) []string -> recursive */
|
||||||
case reflect.Slice:
|
case reflect.Slice:
|
||||||
|
|
||||||
// 1. Return nothing if empty
|
// 1. ignore empty
|
||||||
if dvalue.Len() == 0 {
|
if dvalue.Len() == 0 {
|
||||||
return data, nil
|
return data, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. only return first element if alone
|
// 2. parse each element recursively
|
||||||
if dvalue.Len() == 1 {
|
|
||||||
|
|
||||||
element := dvalue.Index(0)
|
|
||||||
|
|
||||||
// try to parse if a string (containing json)
|
|
||||||
if element.Kind() == reflect.String {
|
|
||||||
return parseParameter(element.String())
|
|
||||||
}
|
|
||||||
|
|
||||||
// already typed
|
|
||||||
return element.Interface(), nil
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// 3. Return all elements if more than 1
|
|
||||||
result := make([]interface{}, dvalue.Len())
|
result := make([]interface{}, dvalue.Len())
|
||||||
|
|
||||||
for i, l := 0, dvalue.Len(); i < l; i++ {
|
for i, l := 0, dvalue.Len(); i < l; i++ {
|
||||||
|
|
Loading…
Reference in New Issue