倾泠雪帝: golang中struct有tag,json都有哪些值

Ai.小助手: 在Golang中,struct的tag可以用于标记字段的元数据,其中最常用的是用于JSON序列化和反序列化的tag。下面是一些常见的JSON tag:

  • json:"-":将该字段忽略,不进行序列化和反序列化。
  • json:"fieldName":指定该字段在JSON中的名称。
  • json:",omitempty":如果该字段为零值或空值,则忽略该字段。
  • json:"fieldName,omitempty":将该字段在JSON中的名称指定为fieldName,并在该字段为零值或空值时忽略该字段。
  • json:"fieldName,string":将该字段在JSON中的值转换为字符串类型。
  • json:"fieldName,omitempty,string":将该字段在JSON中的名称指定为fieldName,并将该字段在JSON中的值转换为字符串类型,并在该字段为零值或空值时忽略该字段。

除了上面列举的常见JSON tag,还有其他一些可用的tag,如json:",string"表示将所有字段的值都转换为字符串类型。

倾泠雪帝: gorm的tag都有哪些,全部列出来

Ai.小助手: GORM是一个Go语言的ORM库,支持MySQL、PostgreSQL、SQLite、SQL Server等多种数据库,它也有自己的一套tag规则。下面是一些常见的GORM tag:

  • gorm:"column:columnName":指定字段在数据库中的列名。
  • gorm:"primary_key":将该字段设置为主键。
  • gorm:"auto_increment":将该字段设置为自增长。
  • gorm:"not null":将该字段设置为非空。
  • gorm:"unique":将该字段设置为唯一。
  • gorm:"default:defaultValue":指定该字段在数据库中的默认值。
  • gorm:"size:255":指定该字段在数据库中的大小。
  • gorm:"type:varchar(100)":指定该字段在数据库中的类型。
  • gorm:"index":为该字段创建索引。
  • gorm:"uniqueIndex":为该字段创建唯一索引。
  • gorm:"embedded":将该字段嵌入到父结构体中,即嵌入式结构体。
  • gorm:"associationForeignKey:ForeignKey":指定关联外键。

除了上面列举的常见GORM tag,还有其他一些可用的tag,如gorm:"default:CURRENT_TIMESTAMP"表示将该字段在数据库中的默认值设置为当前时间戳。

个人笔记记录 2021 ~ 2025