golang中struct成员变量的标签(Tag)说明和获取方式

处理json格式字符串的时候,经常会看到声明struct结构的时候,属性的右侧还有小米点括起来的内容。形如

type Account struct {
    // Id的值会进行二次JSON编码    
    Id              int64  `json:"id"`
    Account         string `json:"account,omitempty" orm:"size(48)"`     // 账号
    PassWord        string `json:"-" orm:"size(32)"`                     // 密码
    //设置字段的长度
    Phone           string `json:"phone" orm:"size(16)"`                 // 手机号

    // 如果 LastLoginTime为空,则不输出到JSON串中
    LastLoginTime int64 `json:"lastlogintime,omitempty"`

    // 设置一对一关系同时含有json输出格式
    Score       *Score       `json:"score,omitempty" orm:"rel(one)"`           // 账号财富

    // 设置一对多的反向关系
    PaymentLog []*PaymentLog `json:"-" orm:"reverse(many)"`

     // 设置一对一反向关系(可选)
    User   *Userinfos `orm:"reverse(one)"`

    //设置多对多关系
    Tags  []*Tag     `orm:"rel(m2m)"`

    //设置反向多对多关系
    Posts []*Post `orm:"reverse(many)"`
}

字段的tag是"-",那么这个字段不会输出到JSON
tag中如果带有"omitempty"选项,那么如果该字段值为空,就不会输出到JSON串中
如果字段类型是bool, string, int, int64等,而tag中带有",string"选项,那么这个字段在输出到JSON的时候会把该字段对应的值转换成JSON字符串

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容