我们之前提到可以使用Struct方法实现对struct对象的转换,那么我们当然也可以实现对struct数组的转换,struct数组转换使用的是Structs方法实现。Structs方法建立在Struct方法的基础之上,所有的转换规则与Struct相同,只是增加了对struct数组类型的支持。

创新互联是一家专注于成都做网站、网站建设与策划设计,鄂尔多斯网站建设哪家好?创新互联做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:鄂尔多斯等地区。鄂尔多斯做网站价格咨询:028-86922220
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 main
import (
"github.com/GOgf/gf/v2/frame/g"
"github.com/gogf/gf/v2/util/gconv"
)
func main() {
type User struct {
Uid int
Name string
}
params := g.Slice{
g.Map{
"uid": 1,
"name": "john",
},
g.Map{
"uid": 2,
"name": "smith",
},
}
var users []*User
if err := gconv.Structs(params, &users); err != nil {
panic(err)
}
g.Dump(users)
}执行后,终端输出:
[
{
"Uid": 1,
"Name": "john"
},
{
"Uid": 2,
"Name": "smith"
}
]