基本介绍
我们之前提到可以使用Struct方法实现对struct对象的转换,那么我们当然也可以实现对struct数组的转换,struct数组转换使用的是Structs方法实现。Structs方法建立在Struct方法的基础之上,所有的转换规则与Struct相同,只是增加了对struct数组类型的支持。在了解Structs方法之前,建议您先了解Struct方法介绍:类型转换-Struct转换
方法定义
Structs方法定义如下
// Structs converts any slice to given struct slice.func Structs(params interface{}, pointer interface{}, mapping ...map[string]string) (err error)
其中pointer目标转换参数类型需要为[]struct/[]struct。
使用示例
我们来看一个简单示例即可理解。
package mainimport ("github.com/gogf/gf/frame/g""github.com/gogf/gf/util/gconv")func main() {type User struct {Uid intName string}params := g.Slice{g.Map{"uid": 1,"name": "john",},g.Map{"uid": 2,"name": "smith",},}var users []*Userif err := gconv.Structs(params, &users); err != nil {panic(err)}g.Dump(users)}
执行后,终端输出:
[{"Uid": 1,"Name": "john"},{"Uid": 2,"Name": "smith"}]
