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

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

golang中json和struct的使用說明

瀏覽:221日期: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久久,三上悠亚国产精品一区二区三区
日韩激情一区二区| 亚洲三级在线| 亚洲一区二区三区免费在线观看 | 亚洲女同中文字幕| 午夜久久影院| 石原莉奈在线亚洲三区| 蜜桃一区二区三区在线观看| 亚洲一区国产| 亚洲精一区二区三区| 视频一区日韩| 日韩欧美中文在线观看| 国产九九精品| 精品视频在线你懂得| 日韩精品诱惑一区?区三区| 91欧美国产| 91精品久久久久久久久久不卡| 日韩一区二区三区在线免费观看| 99久久久久久中文字幕一区| 韩日一区二区三区| 日韩在线一二三区| 亚洲专区视频| 国产欧美一区二区三区精品观看| 精品伊人久久久| 成人欧美一区二区三区的电影| 久久久水蜜桃av免费网站| 在线综合亚洲| 日韩国产欧美在线视频| 国产精品久久久久久模特| 国产成人精品福利| 成人国产精品| 免费观看久久av| 色综合视频一区二区三区日韩 | 免费黄网站欧美| 日韩国产欧美在线视频| 精品网站aaa| 99久久精品费精品国产| 免费看精品久久片| 日韩av一二三| 日韩欧美三级| 爽爽淫人综合网网站| 欧美亚洲福利| 久久国产主播| 亚洲va久久| 国产美女高潮在线观看| 亚洲作爱视频| 欧美黄页在线免费观看| 欧美国产91| 国产精品综合色区在线观看| 99久久婷婷这里只有精品| 日本一不卡视频| 精品国产第一福利网站| 石原莉奈一区二区三区在线观看| 亚洲精品免费观看| 在线一区av| 亚洲精品亚洲人成在线观看| 国产一区2区| 亚洲香蕉久久| 成人片免费看| 日韩精品免费一区二区夜夜嗨| 波多野结衣久久精品| 亚洲综合婷婷| 999国产精品视频| 国产精品一区三区在线观看| 午夜久久福利| 欧美极品中文字幕| 在线日韩成人| 欧美香蕉视频| 日本国产欧美| 欧美日韩视频| 超碰成人av| 久久精品99国产精品| 亚洲精品极品少妇16p| 免费日韩成人| 免费成人性网站| 日本在线精品| 国产精品2023| 亚欧洲精品视频在线观看| 久久精品官网| 国产一区二区三区亚洲综合| 日韩综合一区二区| 蜜桃视频欧美| 国产精品久久久久久久免费观看| 亚洲欧美网站在线观看| 在线日韩中文| 高清不卡亚洲| 国产精品一区二区99| 蜜臀久久99精品久久久久久9| 日本不良网站在线观看| 国产福利一区二区精品秒拍| 亚洲精品伦理| 91久久中文| 深夜视频一区二区| 久久精品国产久精国产| 日韩av一级片| 日韩在线观看一区二区三区| 99视频精品免费观看| 日韩一区二区三区免费| 国产精品一区二区99| 视频一区日韩精品| 久久性天堂网| 国产亚洲精品v| 欧美福利专区| 一区二区小说| 一区二区三区视频免费观看| 久久蜜桃精品| 日韩欧美综合| 日本不良网站在线观看| 黄色网一区二区| 精品视频99| 久久精品一区二区三区中文字幕| 国产毛片精品| 91大神在线观看线路一区| 亚洲综合电影一区二区三区| 91高清一区| 免费国产自久久久久三四区久久 | 国产一区2区| 国产精品magnet| 国产欧美二区| 国产精品xxx| 麻豆成人在线观看| 国产精品视频3p| 国产精品手机在线播放| 欧美经典一区| 成人在线超碰| 韩国三级一区| 亚洲精品888| 视频一区在线播放| 中文字幕日韩亚洲| 亚洲欧美在线综合| 日韩精彩视频在线观看| 国产日产一区| 麻豆一区二区三区| 国产videos久久| 亚洲一级少妇| 欧美成人午夜| 蜜桃视频免费观看一区| 麻豆精品91| 欧美伊人久久| 麻豆成人在线观看| 中文字幕成在线观看| 久久久精品久久久久久96| 偷拍欧美精品| 亚洲久草在线| 欧美日韩亚洲一区三区| 久久亚洲国产精品尤物| 日韩欧美另类一区二区| 国产精品7m凸凹视频分类| 久久午夜影视| 国产日韩三级| av在线最新| 国产一区白浆| 亚洲91在线| 精品久久一区| 91精品国产成人观看| 日韩精品一二区| 国产精品地址| www成人在线视频| 一区二区电影| 久久精品系列| 欧美精选一区二区三区| 日韩精品久久理论片| 久久影院一区二区三区| 久久婷婷亚洲| 亚洲aa在线| 97在线精品| 水野朝阳av一区二区三区| 欧美日本不卡| 久久九九99| 日韩av中文在线观看| 国产资源在线观看入口av| 久久夜色精品| 精品国产美女a久久9999| 91九色精品| 国产精品综合色区在线观看| 日韩欧美精品一区| 亚洲三级网站| 在线手机中文字幕| 亚洲专区视频| 色一区二区三区| 中文视频一区| 亚洲黄色免费av| 视频一区欧美精品| 精品三级国产| 视频一区欧美精品| 色婷婷亚洲mv天堂mv在影片| 亚洲综合国产| 精品久久视频| 综合激情五月婷婷| 亚洲黄色中文字幕| 青青草精品视频| 免费不卡中文字幕在线| 国产精品一区二区三区av| 91成人精品| 国产一区二区三区四区| 亚洲精品进入| 免费黄色成人| 国产精品久久久久久久久久白浆| 亚洲美洲欧洲综合国产一区| 福利一区二区| 欧美亚洲专区|