1. 结构体切片转换为 Map 切片:
- 使用 gconv.ListStruct(objList) 将结构体切片转换为 Map 切片。
package main
import (
"fmt"
"github.com/gogf/gf/frame/g"
)
type User struct {
Id int
Name string
}
func main() {
userList := []User{
{Id: 1, Name: "John"},
{Id: 2, Name: "Jane"},
}
userMapList := gconv.ListStruct(userList)
fmt.Printf("%+v\n", userMapList)
}
2. Map 切片转换为结构体切片:
- 使用 gconv.ListStruct(mList, &objList) 将 Map 切片转换为结构体切片。
package main
import (
"fmt"
"github.com/gogf/gf/frame/g"
)
type User struct {
Id int
Name string
}
func main() {
userMapList := g.Slice{
g.Map{"Id": 1, "Name": "John"},
g.Map{"Id": 2, "Name": "Jane"},
}
var userList []User
err := gconv.ListStruct(userMapList, &userList)
if err == nil {
fmt.Printf("%+v\n", userList)
} else {
fmt.Println(err)
}
}
3. 结构体切片转换为 JSON 字符串切片:
- 使用 gconv.ListJson(objList) 将结构体切片转换为 JSON 字符串切片。
package main
import (
"fmt"
"github.com/gogf/gf/frame/g"
)
type User struct {
Id int
Name string
}
func main() {
userList := []User{
{Id: 1, Name: "John"},
{Id: 2, Name: "Jane"},
}
jsonStrList := gconv.ListJson(userList)
fmt.Println(jsonStrList)
}
4. JSON 字符串切片转换为结构体切片:
- 使用 gconv.ListStruct(jsonStrList, &objList) 将 JSON 字符串切片转换为结构体切片。
package main
import (
"fmt"
"github.com/gogf/gf/frame/g"
)
type User struct {
Id int
Name string
}
func main() {
jsonStrList := g.Slice{
`{"Id":1,"Name":"John"}`,
`{"Id":2,"Name":"Jane"}`,
}
var userList []User
err := gconv.ListStruct(jsonStrList, &userList)
if err == nil {
fmt.Printf("%+v\n", userList)
} else {
fmt.Println(err)
}
}
这些是在 GoFrame 中进行结构体切片转换的一些基本操作。通过使用 gconv 包提供的方法,可以方便地在不同数据类型之间进行转换。根据实际需求选择合适的转换方法。
转载请注明出处:http://www.zyzy.cn/article/detail/7598/GoFrame