Go言語開発におけるtagの使用
1871 ワード
初心beegoフレームワークでは、出力tagを設定するために資料を調べることがよくあります.以下は私と整理tagの設定です.JSONの出力について、struct tagを定義する際に注意しなければならない点は、フィールドのtagが「-」であれば、このフィールドはJSON tagにカスタム名が付いて出力されません.このカスタム名はJSONのフィールド名に表示されます.たとえば、上記の例でserverName tagに「omitempty」オプションがある場合、そのフィールド値が空の場合、JSON列には出力されません.フィールドタイプがbool,string,int,int 64などで、tagに「,string」オプションがある場合、このフィールドはJSONに出力されたときにそのフィールドに対応する値をJSON文字列に変換します.
beego ormにかかわるときのtag設定
リファレンスドキュメント
structメンバー変数のラベルの説明と取得方法
type Server struct {
// ID JSON
ID int `json:"-"`
// ServerName JSON
ServerName string `json:"serverName"`
// json json tag
ServerName2 string `json:"serverName2,string"`
// ServerIP , JSON
ServerIP string `json:"serverIP,omitempty"`
}
beego ormにかかわるときのtag設定
type studentinfo struct {
// ( , )
Id int `pk:"auto"`
//
Stuname string `orm:"size(20)"`
Stuidentify string `orm:"size(30)"`
Stubirth time.Time
Stuclass string `orm:"size(30)"`
Stumajor string `orm:"size(30)"`
}
type Userinfos struct {
//
Id int `pk:"auto"`
//
Name string `orm:"size(30)"`
// OneToOne json
Profile *Profile `orm:"rel(one)" json:"profile,omitempty`
//Post []*Post `orm:"reverse(many)"` //
}
type Profile struct {
Id int
Age int
Email string
Gender string
// ( )
User *Userinfos `orm:"reverse(one)"`
}
type Post struct {
Id int
Title string
//
Tags []*Tag `orm:"rel(m2m)"`
}
type Tag struct {
Id int
Name string
//
Posts []*Post `orm:"reverse(many)"`
}
リファレンスドキュメント
structメンバー変数のラベルの説明と取得方法