该方法定义如下:

自动识别转换Struct

  1. package main
  2. import (
  3. "github.com/gogf/gf/v2/frame/g"
  4. "github.com/gogf/gf/v2/util/gconv"
  5. )
  6. func main() {
  7. type User struct {
  8. Uid int
  9. Name string
  10. }
  11. params := g.Map{
  12. "uid": 1,
  13. "name": "john",
  14. }
  15. var user *User
  16. if err := gconv.Scan(params, &user); err != nil {
  17. panic(err)
  18. }
  19. g.Dump(user)
  20. }

执行后,输出结果为:

  1. {
  2. "Name": "john",
  3. "Uid": 1
  4. }

自动识别转换Struct数组

  1. {
  2. "Name": "john"
  3. },
  4. {
  5. "Uid": 2,
  6. "Name": "smith"
  7. }
  8. ]

自动识别转换Map

  1. package main
  2. import (
  3. "github.com/gogf/gf/v2/frame/g"
  4. "github.com/gogf/gf/v2/util/gconv"
  5. )
  6. func main() {
  7. var (
  8. user map[string]string
  9. params = g.Map{
  10. "uid": 1,
  11. "name": "john",
  12. }
  13. )
  14. if err := gconv.Scan(params, &user); err != nil {
  15. panic(err)
  16. }
  17. g.Dump(user)
  18. }

执行后,输出结果为:

自动识别转换Map数组

  1. package main
  2. "github.com/gogf/gf/v2/frame/g"
  3. )
  4. func main() {
  5. var (
  6. users []map[string]string
  7. params = g.Slice{
  8. g.Map{
  9. "uid": 1,
  10. "name": "john",
  11. },
  12. g.Map{
  13. "uid": 2,
  14. "name": "smith",
  15. },
  16. }
  17. )
  18. if err := gconv.Scan(params, &users); err != nil {
  19. panic(err)
  20. }
  21. g.Dump(users)
  22. }
  1. [
  2. {
  3. "name": "john",
  4. "uid": "1"
  5. },
  6. {
  7. "name": "smith",
  8. "uid": "2"
  9. }