倾泠雪帝: 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