日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

golang中json和struct的使用說明

瀏覽:222日期:2024-05-29 13:00:22
1、返回json響應結果

在struct的字段后面加入json:'key'可以進行json格式輸出,其中key為json的鍵名

type SuccessResponse struct { Code int `json:'code'` Msg string `json:'msg'` Data interface{} `json:'data'`}func SuccessRsp(ctx *gin.Context, data interface{}) { res := SuccessResponse{ Code: 0, Msg: 'success', Data: data, } ctx.JSON(http.StatusOK, res)}type MyData struct { Id int `json:'id'` Name string `json:'name'`}func ListAllOncallPlan(ctx *gin.Context) { //你的業務代碼 //...... data = Mydata{Id:1, Name:'zhangsan'} SuccessRsp(ctx, plans)}響應的結果為:{ 'code': 0, 'msg': 'ok', 'data': { 'id': 1, 'name': 'zhangsan' }}tips:

1.如果struct的某個字段沒有傳值,則輸出的json為默認值,可以通過'omitempty'參數忽略掉值為空的鍵

type MyData struct { Id int `json:'id,omitempty'` Name string `json:'name'`}data = Mydata{Name:'zhangsan'}SuccessRsp(ctx, plans)

則id的鍵會被忽略掉,輸出json為:

{ 'code': 0, 'msg': 'ok', 'data': { 'name': 'zhangsan' }}

2.可以用'-'來完全掉忽略掉某個鍵, 比如下面的id不會被轉化到json字段中

type MyData struct { Id int `json:'-'` Name string `json:'name'`}2、將數據庫的字段轉化成struct

如果使用gorm框架進行數據庫連接,則可以用gorm:'column:key'來指定數據庫的鍵,如下所示

type User struct { Id int64 `gorm:'column:id' json:'id'` Namestring `gorm:'column:name' json:'name,omitempty'`}

補充:golang 一鍵生成 form,json,gorm標簽

每次有新表產生時,就會有新的model,model編寫完后,繁雜的標簽注解令人煩躁,所以寫了這樣的工具。

func AddJsonFormGormTag(in string) (string) {var result stringscanner := bufio.NewScanner(strings.NewReader(in))var oldLineTmp = ''var lineTmp = ''var propertyTmp = ''var seperateArr []stringfor scanner.Scan() {oldLineTmp = scanner.Text()lineTmp = strings.Trim(scanner.Text(), ' ')if strings.Contains(lineTmp, '{') || strings.Contains(lineTmp, '}') {result = result + oldLineTmp + 'n'continue}seperateArr = Split(lineTmp, ' ')// 接口或者父類聲明不參與tag, 自帶tag不參與tagif len(seperateArr) == 1 || len(seperateArr) == 3 {continue}propertyTmp = HumpToUnderLine(seperateArr[0])oldLineTmp = oldLineTmp + fmt.Sprintf(' `gorm:'column:%s' json:'%s' form:'%s'`', propertyTmp, propertyTmp, propertyTmp)result = result + oldLineTmp + 'n'}return result}// 增強型split,對 a,,,,,,,b,,c 以','進行切割成[a,b,c]func Split(s string, sub string) []string {var rs = make([]string, 0, 20)tmp := ''Split2(s, sub, &tmp, &rs)return rs}// 附屬于Split,可獨立使用func Split2(s string, sub string, tmp *string, rs *[]string) {s = strings.Trim(s, sub)if !strings.Contains(s, sub) {*tmp = s*rs = append(*rs, *tmp)return}for i, _ := range s {if string(s[i]) == sub {*tmp = s[:i]*rs = append(*rs, *tmp)s = s[i+1:]Split2(s, sub, tmp, rs)return}}}// 駝峰轉下劃線func HumpToUnderLine(s string) string{if s =='ID' {return 'id'}var rs stringelements:=FindUpperElement(s)for _,e :=range elements{s =strings.Replace(s, e, '_'+strings.ToLower(e),-1)}rs = strings.Trim(s,' ')rs = strings.Trim(rs,'t')return strings.Trim(rs,'_')}// 找到字符串中大寫字母的列表,附屬于HumpToUnderLinefunc FindUpperElement(s string) []string {var rs = make([]string, 0, 10)for i := range s {if s[i] >= 65 && s[i] <= 90 {rs = append(rs, string(s[i]))}}return rs}如何使用

func TestAddJsonFormTag(t *testing.T) { rs := AddJsonFormGormTag(` type User struct{ Iduint64 NameSpace string DailyRoutine int } `) fmt.Println(rs)}結果

type User struct{ Iduint64 `gorm:'column:id' json:'id' form:'id'` NameSpace string `gorm:'column:name_space' json:'name_space' form:'name_space'` DailyRoutine int `gorm:'column:daily_routine' json:'daily_routine' form:'daily_routine'` }

具體對齊,使用go fmt xxx.go 命令

goland 快捷鍵是 ctrl alt L

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久中文视频| 欧美国产一级| 久久久久中文| 日韩免费av| 日韩一区电影| 美腿丝袜亚洲一区| 国产伦精品一区二区三区视频| 视频一区二区三区在线| 国产一区成人| 先锋影音国产一区| 国精品一区二区三区| 亚洲特级毛片| 伊人久久成人| 亚洲欧美日本国产专区一区| 国产精品日韩| 在线一区二区三区视频| 视频国产精品| 日韩av在线免费观看不卡| 久久国产欧美日韩精品| 美女av一区| 亚洲www免费| 亚洲激情另类| 中文一区一区三区免费在线观 | 国产不卡av一区二区| 美女久久99| 国产精品一页| 久久精品国产久精国产| www.com.cn成人| 久久人人88| 在线国产精品一区| 亚洲精品系列| 国产精品一在线观看| 综合激情在线| 国产欧美综合一区二区三区| 久久免费视频66| 黑人精品一区| 精品视频亚洲| 国产色综合网| 亚洲特级毛片| 久久精品影视| 成人一区而且| 久久男人av资源站| 国产亚洲一区二区手机在线观看 | 亚洲一区二区三区久久久| 亚洲香蕉视频| 国产色噜噜噜91在线精品| 精品一区二区三区四区五区| 久久精品91| 亚洲在线国产日韩欧美| 欧美日韩一区二区三区不卡视频 | 日韩一区二区三区免费播放| 成人av动漫在线观看| 亚洲aa在线| 国产拍在线视频| 99久久激情| 日韩激情网站| 日韩视频网站在线观看| 日韩精品一二三四| 国产精区一区二区| 在线日韩中文| 国产日产精品一区二区三区四区的观看方式| 国产在线观看91一区二区三区| 欧美.日韩.国产.一区.二区| 日韩av资源网| 久久精品国产99久久| 青草综合视频| 99精品小视频| 国产麻豆一区二区三区| 蜜臀久久99精品久久一区二区| 一区二区91| 一本大道色婷婷在线| 亚洲精品乱码久久久久久蜜桃麻豆| 久久久久观看| 伊人国产精品| 免费在线小视频| 欧美日韩亚洲三区| 亚洲国产一区二区在线观看| 国产精品18| 免费在线观看成人| av免费不卡国产观看| 欧美在线精品一区| 欧美a级一区| 精品亚洲精品| 亚洲精品三级| 九九久久电影| 国产一区一一区高清不卡| 亚洲18在线| 亚洲午夜在线| 成人高清一区| 欧美日韩1区| 亚洲欧美日本日韩| 亚洲a一区二区三区| 欧美精品91| 成人免费网站www网站高清| 另类激情亚洲| 麻豆视频在线观看免费网站黄| 91精品麻豆| 免费精品视频| 日韩在线第七页| 国产欧美啪啪| 亚洲有吗中文字幕| 欧美日韩在线播放视频| 精品久久久久中文字幕小说| 日韩精品一区二区三区中文在线 | 麻豆成人在线观看| 日本视频一区二区| 亚洲免费网址| 国产99亚洲| 超级白嫩亚洲国产第一| 国产精品白丝一区二区三区| 免费久久精品视频| 蜜桃成人av| 99久久亚洲精品| 国产精品精品| 精品视频一区二区三区在线观看 | 欧美有码在线| 日韩精品视频在线看| 丝袜美腿一区二区三区| 在线一区av| bbw在线视频| 精品少妇av| 国产精品magnet| 91成人精品观看| 日日夜夜免费精品| 在线国产精品一区| 亚洲精品系列| 日韩三级视频| 日本伊人午夜精品| 奇米亚洲欧美| 日韩国产欧美三级| 亚洲aⅴ网站| 日韩精品高清不卡| 日韩不卡一区二区| 中文字幕av一区二区三区人| 国产免费成人| 国产亚洲亚洲| 久久成人一区| 久久99伊人| 亚洲一区欧美| 亚洲精品进入| 欧美永久精品| 国产乱码精品一区二区三区亚洲人 | 亚洲天堂av影院| 色爱综合网欧美| 国产精品伦理久久久久久| 精品一区电影| 日韩欧美在线中字| 欧美日韩激情| 好吊视频一区二区三区四区| 亚洲作爱视频| 亚洲一二av| 日韩av一区二区三区四区| 欧美日韩亚洲一区| 久久99国产精品视频| 国产资源在线观看入口av| 日韩免费福利视频| 丝袜av一区| 亚洲一区免费| 日本欧美韩国一区三区| 国产精品免费不| 国模大尺度视频一区二区| 成人日韩在线观看| 亚洲免费成人| 日本午夜精品久久久久| 韩国女主播一区二区三区| 秋霞影视一区二区三区| 欧美特黄一区| 日韩国产一区二| 精品国产亚洲一区二区三区大结局| 日本蜜桃在线观看视频| 在线 亚洲欧美在线综合一区| 性色一区二区| 欧美伊人久久| 国产传媒av在线| 欧美va天堂在线| 日韩av成人高清| 国产美女高潮在线观看| 99热免费精品| 日韩av成人高清| 国产成年精品| 99热免费精品| 国产精品主播在线观看| 麻豆一区二区在线| 亚洲成人国产| 日本亚洲三级在线| 国产一区二区三区亚洲综合| 久久九九精品| 日本不卡一二三区黄网| 精品女同一区二区三区在线观看| 日韩成人亚洲| 日韩av中文在线观看| 蜜臀国产一区| 亚洲精品无吗| 欧洲av不卡| 日韩一区二区三区四区五区| 久久久久九九精品影院| 自拍日韩欧美| 麻豆一区二区99久久久久| 亚洲激情五月| 精品久久91|