Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 21389214ea |
+11
-4
@@ -729,10 +729,17 @@ func ToMap(args ...interface{}) map[string]interface{} {
|
||||
}
|
||||
default:
|
||||
val := reflect.ValueOf(obj)
|
||||
res := structToMap(val)
|
||||
for key, value := range res {
|
||||
if value != nil {
|
||||
finalArg[key] = value
|
||||
if val.Kind().String() == "map" {
|
||||
tmp := val.MapKeys()
|
||||
for _, key := range tmp {
|
||||
finalArg[key.String()] = val.MapIndex(key).Interface()
|
||||
}
|
||||
} else {
|
||||
res := structToMap(val)
|
||||
for key, value := range res {
|
||||
if value != nil {
|
||||
finalArg[key] = value
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+17
-1
@@ -361,11 +361,27 @@ type Test struct {
|
||||
}
|
||||
|
||||
func TestToMap(t *testing.T) {
|
||||
inStr := map[string]string{
|
||||
"tea": "test",
|
||||
"test": "test2",
|
||||
}
|
||||
result := ToMap(inStr)
|
||||
utils.AssertEqual(t, "test", result["tea"])
|
||||
utils.AssertEqual(t, "test2", result["test"])
|
||||
|
||||
inInt := map[string]int{
|
||||
"tea": 12,
|
||||
"test": 13,
|
||||
}
|
||||
result = ToMap(inInt)
|
||||
utils.AssertEqual(t, 12, result["tea"])
|
||||
utils.AssertEqual(t, 13, result["test"])
|
||||
|
||||
in := map[string]*string{
|
||||
"tea": String("test"),
|
||||
"nil": nil,
|
||||
}
|
||||
result := ToMap(in)
|
||||
result = ToMap(in)
|
||||
utils.AssertEqual(t, "test", result["tea"])
|
||||
utils.AssertNil(t, result["nil"])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user