在一个嵌套的map中根据输入的路径找到相应的值

1
2
3
4
5
6
7
8
9
10
11
12
func FindValue(m map[string]interface{}, path string) interface{} {
keys := strings.Split(path, ".")
if len(keys) > 1 {
v := m[keys[0]]
v1, ok := v.(map[string]interface{})
if !ok {
return nil
}
return FindValue(v1, strings.Join(keys[1:], "."))
}
return m[keys[0]]
}