// json字符串
"Bottom": [
{
"ID": 1425,
"name": "name1"
},
{
"ID": 1426,
"name": "name2"
}
]}`
// 核心方法利用reflect.Typeof(mm).Kind()
// 利用反射先遍历slice的值,再进行类型转换
func Map2Array(m map[string]interface{}) []map[string]interface{} {
var list []map[string]interface{}
if reflect.TypeOf(m).Kind() == reflect.Slice {
s := reflect.ValueOf(m)
for i := 0; i < s.Len(); i++ {
ele := s.Index(i)
list = append(list, ele.Interface().(map[string]interface{}))
}
}
return list
}
// 测试
func main(){
// 此处引用"github.com/tidwall/gjson"用于json字符串转map
m, ok := gjson.Parse(bottom).Value().(map[string]interface{})
if !ok {
log.Println(ok)
return
}
list:=Map2Array(m["Bottom"])
log.Println(list[0]["name"])
}