我如何解决错误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())
}