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