我正在尝试创建一个递归例程来打印复杂json的元素
func printMap(m map[string]interface{}) {
for k, v := range m {
typ := reflect.ValueOf(v).Kind()
if typ == reflect.Map {
printMap(v)
} else {
fmt.Println(k, v)
}
} }
但是我遇到了构建错误 可以使用类型v(类型接口{})作为类型map [string] interface {}
有没有办法输入它或某种程度我可以让它工作?
答案 0 :(得分:1)
func printMap(m map[string]interface{}) {
for k, v := range m {
m, ok := v.(map[string]interface{}) // <-- assert that v is a map
if ok {
printMap(m)
} else {
fmt.Println(k, v)
}
}
}