在 GoFrame 中进行结构体(Struct)之间的转换,通常使用 gconv 包中的方法。以下是一些常见的结构体转换操作:

1. 结构体转换为 Map:
   - 使用 gconv.Struct(obj) 将结构体转换为 Map。
package main

import (
"fmt"
"github.com/gogf/gf/frame/g"
)

type User struct {
Id   int
Name string
}

func main() {
user := User{
Id:   1,
Name: "John",
}

userMap := gconv.Map(user)
fmt.Printf("%+v\n", userMap)
}

2. Map 转换为结构体:
   - 使用 gconv.Struct(m, &obj) 将 Map 转换为结构体。
package main

import (
"fmt"
"github.com/gogf/gf/frame/g"
)

type User struct {
Id   int
Name string
}

func main() {
userMap := g.Map{
"Id":   1,
"Name": "John",
}

var user User
err := gconv.Struct(userMap, &user)
if err == nil {
fmt.Printf("%+v\n", user)
} else {
fmt.Println(err)
}
}

3. 结构体转换为 JSON 字符串:
   - 使用 gconv.Json(obj) 将结构体转换为 JSON 字符串。
package main

import (
"fmt"
"github.com/gogf/gf/frame/g"
)

type User struct {
Id   int
Name string
}

func main() {
user := User{
Id:   1,
Name: "John",
}

jsonStr := gconv.Json(user)
fmt.Println(jsonStr)
}

4. JSON 字符串转换为结构体:
   - 使用 gconv.Struct(jsonStr, &obj) 将 JSON 字符串转换为结构体。
package main

import (
"fmt"
"github.com/gogf/gf/frame/g"
)

type User struct {
Id   int
Name string
}

func main() {
jsonStr := `{"Id":1,"Name":"John"}`
var user User
err := gconv.Struct(jsonStr, &user)
if err == nil {
fmt.Printf("%+v\n", user)
} else {
fmt.Println(err)
}
}

这些是在 GoFrame 中进行结构体转换的一些基本操作。通过使用 gconv 包提供的方法,可以方便地在不同数据类型之间进行转换。根据实际需求选择合适的转换方法。


转载请注明出处:http://www.pingtaimeng.com/article/detail/7597/GoFrame