本文主要是介绍golang 结构体struct、数组、结构体数组 定义与赋值 、json string转struct,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 1.结构体struct
- 1.1 声明结构体
- 1.2 初始化结构体 以及 传参
- 2. 结构体数组、append
- 3. 接口返回 含数组的结构体 常用写法
- json string转struct
1.结构体struct
看这个文章,看一个struct
1.1 声明结构体
// student
type Student struct {Name stringAge uint64
}// class
type Class struct {ClassNo uint64ClassName stringStudents []Student //数组IsHonor bool
}
1.2 初始化结构体 以及 传参
// 初始化结构体的方法一:class := Class{ClassNo: 302ClassName: "三年级二班",Students: students, // students变量IsHonor: false,}key, err := t.Get(class) //普通func (s *SService) Get(class Class){ //普通}// 初始化结构体的方法二: 取地址class := &Class{ClassNo: 302ClassName: "三年级二班",Students: students, // students变量IsHonor: false,}key, err := t.Get(class) // 传的是个”地址“func (s *SService) Get(class *Class){ // 用”指针“接} // 初始化结构体的方法三:class := Class{}class.ClassNo = 302class.ClassName = "三年级二班"class.Students = studentsclass.IsHonor = false
2. 结构体数组、append
var classOne Classvar classList []Classfor ....:取到值先赋给classOne,再用classList = append(classList, classOne)
3. 接口返回 含数组的结构体 常用写法
type RespData struct {Name string `json:"name"`Age uint64 `json:"age"`
}type JiekouResponse struct { List []RespData `json:"list"`
}func (t *TController) SuggestGet(){res := &JiekouResponse{}res.List = []RespData{} // 定义数组s := service.NewTService(t.param)allData := s.GetAllData()var dataOne RespDatafor _, data := range allData { // 循环赋值dataOne.Name = data.NamedataOne.Age = data.Ageres.List = append(res.List, dataOne) // 数组append给值}
}
json string转struct
type UserInfo struct {ParentNodeId int64 `json:"parent_node_id"`NodeTypeId uint32 `json:"node_type_id"`DimeNodeValue string `json:"dime_node_value"`CnName string `json:"cn_name"`EnName string `json:en_name"`
}// 解析userInfolist:从json string到structuserinfoStr := req.Userinfolist // req.Userinfolist是个list,list里是非常多的json string [{"a":1,"b":2,"c":"3"},{},...]var userInfolist []*UserInfoif userinfoStr != "" {err := json.Unmarshal([]byte(userinfoStr), &userInfolist)fmt.Println("userInfolist:", userInfolist)fmt.Println(userInfolist[0].DimeNodeValue)if err != nil {return res, err}}
其他文章参考:golang结构体-对象和指针-函数赋予
这篇关于golang 结构体struct、数组、结构体数组 定义与赋值 、json string转struct的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!