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