Golang中struct結構標籤(Tag)的使用
Golang中struct結構標籤(Tag)的使用
在看別人的一些程式碼時,宣告結構時有個json:name
是做什麼用的?
想知道原因得了解下:
在golang中,命名都是推薦都是用駝峰方式,並且在首字母大小寫有特殊的語法含義:包外無法引用。但是由經常需要和其它的系統進行資料互動,例如轉成json格式,儲存到Redis等等。這個時候如果直接用屬性名來作為鍵值會不符合專案要求。
於是就有了tag,也就是有了json:name
或者orm:"size(1000)"
也或者json:name orm:"size(1000)"這樣的宣告。
在我們把結構轉成json時 就會以tag裡面的名字出現。
下面這是我在用beego框架的orm宣告的一個結構體
// 評論
type Comment struct {
Id int64 `json:"id"`
Tid int64 `json:"tid"`
NickName string `json:"nickName"`
Content string `json:"content" orm:"size(1000)"`
Created time.Time `json:"created" orm:"index"`
}
當我們在控制器中寫api時就可以直接取了
func (this *ApiCommentController) All() {
tid := this.Input().Get("tid")
// 獲取評論
comments, err := models.GetAllComment(tid)
if err != nil {
beego.Error(err)
}
this.Data["json"] = map[string]interface{}{
"code": 0,
"message": "獲取成功",
"date": comments,
}
this.ServeJSON()
return
}
這時訪問介面返回的資料就是以tag裡面的命名的key
相關文章
- PbootCMS生成的 sitemap.xml 中增加 tag 標籤連結bootXML
- Git tag 標籤Git
- Golang 學習——結構體 struct (一)Golang結構體Struct
- Golang 學習——結構體 struct (二)Golang結構體Struct
- Git-tag標籤Git
- mysql表結構自動生成golang structMySqlGolangStruct
- golang 學習之路之 struct 結構體GolangStruct結構體
- 雲伺服器php中的short_open_tag短標籤使用伺服器PHP
- Git刪除tag標籤Git
- 易優tag TAG呼叫標籤-EyouCms手冊
- Git檢視所有tag標籤Git
- Git tag標籤用法詳解Git
- Git (10)-- 打標籤(git tag)Git
- 給你的ABAP物件打上標籤(Tag)物件
- 【Golang】Go 通過結構(struct) 實現介面(interface)GolangStruct
- Go語言之 Struct TagGoStruct
- 如何在易優EyouCms中為文章新增TAG標籤?
- Git tag標籤與branch分支的區別Git
- HTML簡介,結構,標籤以及標籤語義HTML
- HTML中的標籤的使用HTML
- Git tag標籤與branch分支 區別Git
- Git檢視tag標籤建立時間Git
- tag標籤是怎麼用OT實現的?
- C# 中的只讀結構體(readonly struct)C#結構體Struct
- HTML標籤(基本標籤的使用)HTML
- Go 結構體標籤詳解Go結構體
- 關於pycharm無法顯示tag標籤PyCharm
- 請教一個struct tag的問題Struct
- Go 之基礎速學 (七) golang 裡包的使用 JSON 化 struct 結構體以及 if else 的初次使用(二)GolangJSONStruct結構體
- HTML中IMG標籤總結HTML
- Steam標籤學:哪些tag下的遊戲更賣座?遊戲
- vuejs實現新增tag標籤程式碼例項VueJS
- Music Tag Editor Mac(音訊標籤編輯器)Mac音訊
- Mac音訊標籤編輯器:Music Tag EditorMac音訊
- Music Tag Editor Mac(音樂標籤編輯器)Mac
- golang中struct、json、map互相轉化GolangStructJSON
- 音訊標籤編輯器:Mp3tag for mac音訊Mac
- Music Tag Editor Pro Mac(音樂標籤管理軟體)Mac