### 主要功能
> 可以搭配gorm的sql结果扫描函数Scan、Find等,将结果直接传入本包提供的树形化函数(ScanToTreeData),快速实现树形化
> 支持无限级树形化(自己嵌套自己)、有限级个性化树形化
> github 仓库地址,欢迎使用,反馈使用意见,顺便点点 star
https://github.com/qifengzhang007/sql_res_to_tree
### 核心代码段
```code
// 接受树形结果的结构体要求如下:
// 1.主键必须使用 primaryKey:"yes" 标签定义,类型必须是 int int64 in32 等int系列,不能使用 string 等其他类型
// 2.子结构体关联父级结构体的键必须定义 `fid:"父级主键"` 标签,父子关联键数据类型必须都是 int int32 int64 等int系列
// 定义一个目标切片,用于接受最终的树形化数据
type SchoolGradeClass struct {
SchoolId int `primaryKey:"yes" json:"school_id"`
SchoolName string `json:"school_name"`
Children []struct {
FkSchoolId int `fid:"SchoolId"`
GradeId int `primaryKey:"yes"`
GradeName string
Children []struct {
FkGradeId int `fid:"GradeId"`
ClassId int `primaryKey:"yes"`
ClassName string
} `json:"children"`
} `json:"children"`
}
var dest = make([]SchoolGradeClass , 0)
// inSqlSlice 可以直接传递 gorm的sql扫描函数 Scan Find的结果(结构体切片数据格式)
sql_res_to_tree.CreateSqlResFormatFactory().ScanToTreeData(inSqlSlice, &dest);
```
> 最终结果:
![效果图1](https://www.ginskeleton.com/images/tree1.jpg)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码`
- 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传