json:不支持的类型:func()时间.时间封送创建时间,更新时间和删除时间



我如何解决错误json: unsupported type: func() time.Time试图返回一个新保存的模型回JSON。

user := database.DBConn.Create(&newUser)
return c.Status(http.StatusCreated).JSON(user) // fiber response

尝试忽略时间戳字段。

type User struct {
gorm.Model
ID uuid.UUID `gorm:"primary_key;type:uuid;default:uuid_generate_v4()"`
Phone     string `json:"phone"`
FirstName string `json:"firstName"`
LastName  string `json:"lastName"`
Email string `json:"email"`
CreatedAt time.Time `json:"-"`
UpdatedAt time.Time `json:"-"`
DeletedAt time.Time `json:"-"`
}

也试过

CreatedAt time.Time `gorm:"type:timestamp" json:"created_at,string,omitempty"`
UpdatedAt time.Time `gorm:"type:timestamp" json:"updated_at,string,omitempty"`
DeletedAt time.Time `gorm:"type:timestamp" json:"deleted_at,string,omitempty"`

CreatedAt time.Time `gorm:"type:datetime" json:"created_at,string,omitempty"`
UpdatedAt time.Time `gorm:"type:datetime" json:"updated_at,string,omitempty"`
DeletedAt time.Time `gorm:"type:datetime" json:"deleted_at,string,omitempty"`

使用gorm v1.20.12和Go 1.15.6

我遇到了类似的错误,并发现user := database.DBConn.Create(&newUser)返回一个不能被JSON封送的*gorm.DB。

可以这样写:

database.DBConn.Create(&newUser)
return c.Status(http.StatusCreated).JSON(newUser)

它对我有用,我希望它对你也有用。

由于其他答案表明. create()返回*gorm.DB,因此您必须知道导致此错误的原因。你应该这样返回错误:

if err:= database.DBConn.Create(&newUser).Error; if err != nil {
return c.Status(fiber.StatusBadRequest).JSON(err.Error()) 
}

相关内容

  • 没有找到相关文章

最新更新