golang中struct成員變量的標簽(Tag)說明和獲取方式

處理json格式字符串的時候,經(jīng)常會看到聲明struct結構的時候,屬性的右側還有小米點括起來的內(nèi)容。形如

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字符串

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容