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.zyzy.cn/article/detail/7597/GoFrame