package Test import ( "encoding/json" "fmt" "sort" "testing" ) type listItem struct { BusinessCode string `json:"business_code"` MenuUrl string `json:"menu_url"` ParentId string `json:"parent_id"` PurviewId string `json:"purview_id"` PurviewName string `json:"purview_name"` SortId string `json:"sort_id"` } type bigJson struct { Success bool Message string Count int list []listItem } /** 功能:结构体排序通用办法 按标签排序 */ type SortTagsStructSlice []listItem func (a SortTagsStructSlice) Len() int { return len(a) } func (a SortTagsStructSlice) Swap(i, j int) { a[i], a[j] = a[j], a[i] } func (a SortTagsStructSlice) Less(i, j int) bool { return a[i].SortId < a[j].SortId } func TestSqlBuilder(t *testing.T) { jsonStr := `{ "success": true, "message": "操作成功", "list": [], "count": 7 }` listJson := `[ { "business_code": "B00001", "menu_url": "#", "parent_id": "29050385-3E01-4E7D-8805-21B19960351F", "purview_id": "321E6A29-6326-4F79-8EEB-40A4A3BB6561", "purview_name": "学生用户管理", "sort_id": "5" }, { "business_code": "B00001", "menu_url": "#", "parent_id": "00000000-0000-0000-0000-000000000000", "purview_id": "E1CB0804-2498-4A99-B419-B732EC7E8E52", "purview_name": "组织机构管理", "sort_id": "6" }, { "business_code": "B00001", "menu_url": "#", "parent_id": "29050385-3E01-4E7D-8805-21B19960351F", "purview_id": "687AD08F-DB9B-4992-A889-179BB3D8C067", "purview_name": "教职工用户管理", "sort_id": "4" }, { "business_code": "B00001", "menu_url": "#", "parent_id": "E1CB0804-2498-4A99-B419-B732EC7E8E52", "purview_id": "DBBA5B31-92D7-4654-A762-51B596E8B2C6", "purview_name": "学校信息管理", "sort_id": "3" }, { "business_code": "B00001", "menu_url": "#", "parent_id": "E1CB0804-2498-4A99-B419-B732EC7E8E52", "purview_id": "D815BF5A-9EB6-4662-A758-21B24041B2D7", "purview_name": "教育局信息管理", "sort_id": "2" }, { "business_code": "B00001", "menu_url": "#", "parent_id": "E1CB0804-2498-4A99-B419-B732EC7E8E52", "purview_id": "F1CEB14D-290F-440F-B583-79CF7DE518F0", "purview_name": "教辅单位信息管理", "sort_id": "1" }, { "business_code": "B00001", "menu_url": "#", "parent_id": "00000000-0000-0000-0000-000000000000", "purview_id": "29050385-3E01-4E7D-8805-21B19960351F", "purview_name": "用户信息管理", "sort_id": "7" } ]` var m1 []listItem json.Unmarshal([]byte(listJson), &m1) //排序 sort.Sort(SortTagsStructSlice(m1)) var m bigJson json.Unmarshal([]byte(jsonStr), &m) m.list=m1 fmt.Println(m) }