type TreeList struct {
ID int
Pid int
Name string
Children []TreeList
}
func GetTree(pid int, list interface{}) []TreeList {
treeList := []TreeList{}
sv := reflect.ValueOf(list)
svs := sv.Slice(0, sv.Len())
for i := 0; i < svs.Len(); i++ {
e := svs.Index(i)
currentPid := gconv.Int(e.Elem().FieldByName("Pid").Int())
currentId := gconv.Int(e.Elem().FieldByName("Id").Int())
if currentPid == pid {
child := GetTree(currentId, list)
node := TreeList{
ID: currentId,
Name: e.Elem().FieldByName("DistrictName").String(),
Pid: currentPid,
}
node.Children = child
treeList = append(treeList, node)
}
}
return treeList
}
golang学习之动态获取无限极分类
最新推荐文章于 2022-06-08 16:04:41 发布