成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

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

golang中json和struct的使用說明

瀏覽:183日期: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
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产91在线|亚洲| av成人动漫在线观看| 波多野结衣欧美| 欧美专区日韩专区| 一区二区三区产品免费精品久久75| 99久久亚洲一区二区三区青草| 欧美一区二区视频在线观看2020 | 先锋a资源在线看亚洲| 亚洲欧美综合另类在线卡通| 欧美日韩一区在线观看视频| 久久精品一区二区三区不卡 | 国产精品一线二线三线精华| 欧美日韩国产综合一区二区三区 | 国产麻豆9l精品三级站| 欧美三级蜜桃2在线观看| 亚洲一区二区三区在线看| 99精品热6080yy久久| 国产精品久久久久一区| 91麻豆国产福利在线观看| 日韩精品在线一区二区| 粗大黑人巨茎大战欧美成人| 欧美一区二视频| 成人一区在线看| 欧美mv日韩mv亚洲| 99九九99九九九视频精品| 精品国产91洋老外米糕| 9i看片成人免费高清| 久久婷婷国产综合精品青草| 成人av免费在线| 国产亚洲成av人在线观看导航 | 国产精品―色哟哟| 91麻豆高清视频| 欧美高清在线一区| 欧美精品一区二区三区久久久竹菊| 精品sm捆绑视频| 国产成人无遮挡在线视频| 欧美日韩大陆一区二区| 伦理电影国产精品| 欧美性感一区二区三区| 久久国产免费看| 欧美日韩国产首页| 国产乱妇无码大片在线观看| 制服丝袜在线91| 精品在线你懂的| 欧美日韩国产首页在线观看| 寂寞少妇一区二区三区| 欧美日韩一区二区在线视频| 蜜臂av日日欢夜夜爽一区| 日本久久一区二区三区| 午夜精品久久久久久久99樱桃| 免费日韩视频| 日本亚洲视频在线| 欧美日韩中文字幕一区| 国产麻豆视频精品| 精品国内片67194| 欧美二区视频| 亚洲色图欧美激情| 国产精品普通话对白| 亚洲mv大片欧洲mv大片精品| 一本到不卡精品视频在线观看 | 成人福利视频网站| 久久久精品综合| 欧美日韩三区| 亚洲欧美中日韩| 国产精品夜夜夜一区二区三区尤| 亚洲h动漫在线| 在线中文字幕一区二区| 国产一本一道久久香蕉| 2022国产精品视频| 亚洲午夜精品一区二区| 一区二区三区高清| 欧美在线播放高清精品| 国产高清在线观看免费不卡| 久久精品一二三| 欧美日韩天天操| 亚洲女性喷水在线观看一区| 国产精品久久波多野结衣| 五月天精品一区二区三区| 欧美在线观看视频在线| 国产成人免费视频精品含羞草妖精| 久久亚洲私人国产精品va媚药| 欧美日韩在线不卡一区| 亚洲电影你懂得| 91精品国产色综合久久不卡电影 | 亚洲精品免费一二三区| 91传媒视频在线播放| 国产精品99久久久久久宅男| 久久久久久久一区| 夜久久久久久| 六月丁香综合在线视频| 26uuu亚洲婷婷狠狠天堂| 伊人久久大香线蕉av超碰演员| 一区二区久久久久久| 欧美私人免费视频| av亚洲产国偷v产偷v自拍| 亚洲色图制服丝袜| 欧美亚洲国产怡红院影院| 成人av电影在线网| 亚洲激情欧美激情| 欧美日韩日日摸| 欧美日韩高清在线一区| 偷窥少妇高潮呻吟av久久免费 | 国产精品青草久久| 色天天综合色天天久久| 国产99久久久国产精品潘金| 国产精品毛片大码女人| 久久久久国产精品一区二区| 懂色av一区二区在线播放| 亚洲欧美另类在线| 88在线观看91蜜桃国自产| 国产综合视频| 麻豆精品一区二区三区| 国产欧美精品一区| 久久大逼视频| 成人激情动漫在线观看| 亚洲日本免费电影| 欧美裸体bbwbbwbbw| 欧美视频1区| 美女视频黄免费的久久| 久久久久久久久伊人| 亚洲综合精品| 成人av网站在线| 亚洲午夜av在线| 久久综合久久综合久久综合| 久久精品国语| 欧美chengren| 久久99蜜桃精品| 成人免费一区二区三区在线观看| 在线看日本不卡| 狠久久av成人天堂| 激情五月激情综合网| 中文字幕亚洲欧美在线不卡| 欧美日韩国产综合一区二区| 国产综合色一区二区三区| 久久99久久99| 欧美精品日韩一区| 亚洲欧洲日本国产| 亚洲欧美国产77777| 欧美一区二区三区四区在线观看| 日韩午夜免费| 国产91高潮流白浆在线麻豆| 亚洲制服丝袜av| 久久久久久毛片| 欧美日韩黄色一区二区| 在线亚洲激情| 欧美在线高清| 国产精品一二三在| 天堂在线一区二区| 国产精品成人免费在线| 欧美一区二区福利在线| 每日更新成人在线视频| 国产精品二区三区四区| 成人综合婷婷国产精品久久 | 欧美高清在线精品一区| 在线播放亚洲一区| 免费久久99精品国产自| 色综合亚洲欧洲| 国产老妇另类xxxxx| 亚洲chinese男男1069| 国产精品每日更新在线播放网址| 欧美日韩高清影院| 蜜乳av另类精品一区二区| 国模大胆一区二区三区| 成人午夜视频在线| 精品一区二区在线播放| 亚洲国产成人av好男人在线观看| 中文文精品字幕一区二区| 91精品欧美久久久久久动漫 | 欧美精品日韩精品| 久久久久久国产精品mv| 欧美日韩在线精品| 高清在线观看日韩| 国产一区在线精品| 免费观看久久久4p| 日韩一区欧美二区| 亚洲电影一区二区| 亚洲激情欧美激情| 亚洲欧美日韩小说| 国产精品国产自产拍在线| 国产偷v国产偷v亚洲高清| 精品久久久久av影院| 欧美欧美欧美欧美首页| 日本精品视频一区二区| 国产美女一区| 亚洲欧美大片| 亚洲一区尤物| 亚洲经典在线| 亚洲每日更新| 日韩亚洲国产精品| 亚洲黄色影院| 影音先锋中文字幕一区二区| 91丨porny丨在线| 99久久精品免费观看| 不卡视频一二三四| 成人动漫精品一区二区| 国产成a人无v码亚洲福利| 国产在线精品一区二区三区不卡| 麻豆国产精品视频| 欧美a级理论片| 美女网站色91|