午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識庫 > 在golang xorm中使用postgresql的json,array類型的操作

在golang xorm中使用postgresql的json,array類型的操作

熱門標簽:壽光微信地圖標注 excel地圖標注分布數據 阿克蘇地圖標注 外呼系統顯本地手機號 外呼系統用什么卡 百度地圖標注后傳給手機 涿州代理外呼系統 電話機器人軟件免費 評價高的400電話辦理

xorm支持各種關系數據庫,最近使用postgresql時,總是踩到一些坑,在此記錄下解決方式。

在使用postgresql的array類型時,查詢有點問題,xorm的官方文檔給出重寫的方式,但是不是很清晰:

官方文檔鏈接:http://xorm.io/docs

也就是說碰到基礎庫不支持的類型,需要我們去重寫ToDB、FromDB方法,廢話不多說直接上代碼:

比如int8[]類型,自定一個Int64Array

type Int64Array []int64

func (s *Int64Array) FromDB(bts []byte) error {
	if len(bts) == 0 {
		return nil
	}

	str := string(bts)
	if strings.HasPrefix(str, "{") {
		str = "[" + str[1:len(str)]
	}

	if strings.HasSuffix(str, "}") {
		str = str[0: len(str)-1] + "]"
	}

	var ia = []int64{}

	err := json.Unmarshal([]byte(str), ia)
	if err != nil {
		return err
	}

	*s = Int64Array(*ia)
	return nil
}

func (s *Int64Array) ToDB() ([]byte, error) {
	return serializeBigIntArray(*s, "{", "}"), nil
}

func (arr Int64Array) MarshalJSON() ([]byte, error) {
	return serializeBigIntArrayAsString(arr, "[", "]"), nil
}

func (arr *Int64Array) UnmarshalJSON(b []byte) error {
	var strarr []string
	var intarr []int64

	err := json.Unmarshal(b, strarr)
	if err != nil {
		return err
	}

	for _, s := range strarr {
		i, err := strconv.ParseInt(s, 10, 64)
		if err != nil {
			return err
		}

		intarr = append(intarr, i)
	}

	*arr = intarr
	return nil
}

func serializeBigIntArray(s []int64, prefix string, suffix string) []byte {
	var buffer bytes.Buffer

	buffer.WriteString(prefix)

	for idx, val := range s {
		if idx > 0 {
			buffer.WriteString(",")
		}
		buffer.WriteString(strconv.FormatInt(val, 10))
	}

	buffer.WriteString(suffix)

	return buffer.Bytes()
}

func serializeBigIntArrayAsString(s []int64, prefix string, suffix string) []byte {
	var buffer bytes.Buffer

	buffer.WriteString(prefix)

	for idx, val := range s {
		if idx > 0 {
			buffer.WriteString(",")
		}
		buffer.WriteString("\"")
		buffer.WriteString(strconv.FormatInt(val, 10))
		buffer.WriteString("\"")
	}
	buffer.WriteString(suffix)
	return buffer.Bytes()
}

json類型:

type Cover struct {
 Id   int64  `json:"id,omitempty"`
 Fid  string `json:"fid,omitempty"`
 Type int8   `json:"type,omitempty"`
 Url  string `json:"url,omitempty"`
}

func (c *Cover) FromDB(bytes []byte) error {
 return json.Unmarshal(bytes, c)
}

func (c *Cover) ToDB() (bytes []byte, err error) {
 bytes, err = json.Marshal(c)
 return
}

具體使用:

type Course struct {
	Id            int64             `json:"id,string" form:"id"`
	Name          string            `json:"name" form:"name"`
	Brief         string            `json:"brief" form:"brief"`
	Description   string            `json:"description" form:"description"`
	Cover         common.Cover      `xorm:"Text" json:"cover" form:"cover"`
	Categories    common.Int64Array `xorm:"Text" json:"categories" form:"categories[]"`
	Tags          common.Int64Array `json:"tags" form:"tags[]"`
	Difficulty    float64           `json:"difficulty" form:"difficulty"`
	Price         float64           `json:"price" form:"price"`
	Markets       common.Int64Array `json:"markets" form:"markets[]"`
	StudentAmount int64             `json:"studentAmount" form:"studentAmount"`
	SubjectAmount int64             `json:"subjectAmount" form:"subjectAmount"`
	Crt           time.Time         `json:"crt"`
	Lut           time.Time         `json:"lut"`
	Status        int16             `json:"status" form:"status"`
	common.Page                     `xorm:"-"`
}

補充:golang gin xorm注意事項

1. 無論是golang還是xorm中,在填寫j'son字段時,注意空格,比如 `json:"abcd "` `json:"abcd"`是不一樣的,不仔細對比會出錯

2.當結合gin框中的

c.JSON(http.StatusOK,gin.H{})操作

并且使用xorm中的join,find操作時(https://www.kancloud.cn/xormplus/xorm/167102)要注意如下現象,

假如定義兩個結構體對應兩個表

然后使用聯合查詢,先把兩個結構體結合成一個結構體,假如如下,在UserGroup中使用User和Group匿名結構體,

那么當我們使用gin的c.JSON(http.StatusOK,gin.H{"data":UserGroup})返回數據時會導致Group和User中同名字段顯示不了,這應該是gin和xorm的不是很兼容造成的(沒有深究),

要解決這個問題,最好讓UserGroup中的User和Group不要以匿名結構體的形式存在

可以改成

type UserGroup struct {
    MyUser  User `xorm:"extends" json:"你要json中返回的名字"`
    MyGroup Group `xorm:"extends" json:"你要json中返回的名字"`
}

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

您可能感興趣的文章:
  • golang xorm及time.Time自定義解決json日期格式的問題
  • golang xorm日志寫入文件中的操作
  • go語言 xorm框架 postgresql 的用法及詳細注解
  • golang中xorm的基本使用說明
  • 解決goxorm無法更新值為默認值的問題
  • xorm根據數據庫生成go model文件的操作
  • 使用go xorm來操作mysql的方法實例
  • go xorm框架的使用

標簽:欽州 吐魯番 汕頭 銅川 雞西 重慶 梅河口 蘭州

巨人網絡通訊聲明:本文標題《在golang xorm中使用postgresql的json,array類型的操作》,本文關鍵詞  在,golang,xorm,中,使用,postgresql,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《在golang xorm中使用postgresql的json,array類型的操作》相關的同類信息!
  • 本頁收集關于在golang xorm中使用postgresql的json,array類型的操作的相關信息資訊供網民參考!
  • 推薦文章
    蜜月aⅴ免费一区二区三区| 国产精彩视频在线| 日本午夜视频在线观看| 91视频 -- 69xx| 国产成人自拍偷拍| 欧美日韩在线不卡| 91视频免费入口| 91传媒视频在线播放| 吴梦梦av在线| 国产jzjzjz丝袜老师水多| 亚洲欧美日韩小说| 91国偷自产一区二区三区成为亚洲经典 | 国产伦精品一区二区三区免费视频| 精品少妇人妻av免费久久洗澡| 成人动漫中文字幕| 欧美岛国在线观看| 日韩av免费一区| 欧美精品自拍偷拍| 国严精品久久久久久亚洲影视 | 在线观看免费av片| 亚洲欧洲av另类| 亚洲一品av免费观看| 亚洲视频在线观看| 亚洲综合国产精品| 欧美污视频网站| 国产一区二区三区精彩视频| 人妻丰满熟妇av无码久久洗澡| 亚洲国产精品自拍| 91精品在线观看视频| 51自拍视频在线观看| 国产乱国产乱老熟300| 久久精品亚洲| 国产色一区二区| 成人黄色片视频| 欧美变态tickle挠乳网站| 欧美日韩国产一二三区| 亚洲成人久久一区| 国产视频一区二区三区在线播放 | 欧美色图亚洲自拍| 欧美,日韩,国产在线| 中文字幕天堂在线| 成人精品在线视频| 亚洲h视频在线观看| 亚洲欧美日韩国产中文专区| 国产福利成人在线| 五月激情五月婷婷| 中文字幕日韩一区| 欧美精品一区二区三区在线看午夜 | 先锋影音网一区| 亚洲国产成人精品激情在线| av亚洲精华国产精华| 亚洲午夜免费视频| 奇米777在线视频| 大尺度在线观看| 亚洲免费视频成人| 91免费视频网站在线观看| 成年人小视频在线观看| 欧美区一区二区三区| 亚洲一二区在线观看| 亚洲成人亚洲激情| 少妇人妻好深好紧精品无码| 国产精品一区免费观看| 日本在线精品视频| 国产精品333| 成熟老妇女视频| 九九热这里有精品视频| 国产一区二区日韩| 99精品视频99| 国产网站欧美日韩免费精品在线观看 | 视频直播国产精品| 日韩av免费网址| 91传媒免费看| 国产精品乱码人人做人人爱| 欧美在线观看网站| 色屁屁草草影院ccyy.com| 国产精品免费视频一区| 国产中文字幕视频在线观看| 波多野在线播放| 免费成人你懂的| 日韩手机在线导航| 久久99导航| 99精品热视频| 人妻av无码专区| 成人18视频在线播放| 精品久久sese| 国产一区二区三区高清播放| 水蜜桃一区二区三区| 久久综合色天天久久综合图片| 久久久精品一区二区| 18精品爽国产三级网站| 91精品啪在线观看国产60岁| 欧美一区1区三区3区公司| 国产老头老太做爰视频| 伊人精品在线观看| 国产aⅴ爽av久久久久成人| av免费在线播放网站| 国产成人av自拍| 亚洲欧美99| 555www色欧美视频| 91久久精品国产91久久| 久久成人精品无人区| 婷婷激情5月天| 亚洲 日韩 国产第一区| 97久久精品视频| 亚洲图片欧美色图| 在线精品免费视| 国产一区视频在线播放| 亚洲第一天堂在线观看| 日韩免费av一区二区三区| 国产欧美一区二区在线| 久久爱av电影| 热久久国产精品| 日韩精品一区二区免费| 视频直播国产精品| 秋霞欧美一区二区三区视频免费 | 香蕉视频国产在线| 精品视频在线免费| 青草影院在线观看| 国产欧美日韩综合一区在线观看 | 亚洲二区中文字幕| 久久精品女同亚洲女同13| 精品国产欧美一区二区| 91麻豆视频在线观看| 北条麻妃一区二区三区中文字幕| 婷婷激情四射网| 特级西西444| 亚洲精品在线电影| 国产精品suv一区| 成人欧美一区二区| 亚洲亚洲人成综合网络| 草草草视频在线观看| 欧美一区二区日韩| 国产揄拍国内精品对白| 亚洲自拍偷拍另类| 日韩免费不卡视频| 天天摸天天舔天天操| 国产在线拍偷自揄拍精品| 毛片av一区二区| 久色视频在线播放| 精品日韩欧美在线| 亚洲精品一区二区三区不卡| 手机精品视频在线| 欧美在线啊v一区| 麻豆精品国产传媒| 日韩欧美一二三区| 九九这里只有精品视频| 精品黑人一区二区三区久久 | 成人app下载| 青青青在线免费观看| 欧美日韩另类丝袜其他| 久久久久久久久久久免费精品| 亚洲欧美国产精品久久久久久久 | 亚洲第一精品网站| 樱空桃在线播放| 日韩欧美一级二级| a级片免费观看| 中文字幕55页| 在线视频免费一区二区| 国产一级视频在线观看| 日韩中文字幕在线看| 国产精品成人久久久| 国产精品免费一区| 亚洲第一福利在线观看| 国产日产欧美一区| 欧美三级免费看| 超碰在线播放91| 免费久久久一本精品久久区| 日韩免费av电影| 日本一区二区三区视频免费看 | 久久久99精品久久| 日本美女视频一区| 在线亚洲午夜片av大片| 国产精品理论在线观看| 日本视频免费在线| 欧美精品激情在线| 丝袜美腿亚洲色图| 精品欧美一区二区久久久伦| 中文字幕欧美日韩一区| 国产情侣激情自拍| 中文字幕观看av| 国产精品久久精品国产| 日韩成人中文字幕| 亚洲精品国产精华液| 中文字幕一区av| 精品久久久久久久久久久| 91精品国产色综合久久ai换脸 | 日韩中文字幕精品视频| 久久综合九色综合久久久精品综合| 亚洲久久久久久久| 国产一区二区三区小说| 中文字幕一区电影| 国产成人自拍网| 欧美性猛交xxxx乱| 日韩中文字幕电影| 中文字幕中文在线| 亚洲xxx自由成熟| 久久国产精品视频| 色偷偷9999www| 久久久久久自在自线| 少妇按摩一区二区三区| 亚洲精品视频三区| 亚洲三级视频网站| 亚洲 欧美 国产 另类| 天堂资源在线播放| 亚洲AV无码国产精品午夜字幕| 三级精品在线观看| 玖玖精品视频| 国产精品高潮呻吟av| 白嫩情侣偷拍呻吟刺激| 免费看啪啪网站| 欧美在线视频观看| 国产精品久久久久999| 夜夜嗨av色综合久久久综合网| 五月婷婷六月激情| www.日本高清| 亚洲成人自拍视频| 久久精品亚洲热| 在线观看91av| 日本精品一区二区三区高清 | 国产精品精品国产| 相泽南亚洲一区二区在线播放| 妺妺窝人体色www在线观看| 久久久精品少妇| 国产一级18片视频| 91国产丝袜播放在线| 丰满熟女人妻一区二区三| 久久久久久视频| 95视频在线观看| www.四虎在线| 一级黄色片毛片| 亚洲免费精品视频| 性日韩欧美在线视频| 欧美久久久久免费| 日本一区二区三区久久久久久久久不 | 色七七在线观看| 涩视频在线观看| 青青草国产精品视频| 中文字幕12页| 日韩成人午夜电影| 538prom精品视频线放| 欧美影院在线播放| 黄色动漫网站入口| 久久亚洲国产成人精品无码区| 免费大片在线观看| 日本丰满大乳奶| 日本久久久久久久久久久久| 天堂在线资源视频| 中文字幕55页| 视频在线一区二区三区| 一区二区三区电影| 岛国片在线免费观看| 欧美激情在线一区二区| 一区二区三区国产视频| www.日韩不卡电影av| 色婷婷综合久久久久中文字幕1| 色中色综合影院手机版在线观看| 66m—66摸成人免费视频| 欧美日韩中文在线| 日韩欧美高清在线| 91精品视频在线| 国产吃瓜黑料一区二区| 亚洲第一成人av| 欧美三区在线观看| 成人黄色在线播放| 国产传媒在线看| 国产精品一区二区久久不卡| 精品国免费一区二区三区| 欧美亚洲一级片| 国产日韩第一页| 紧身裙女教师波多野结衣| 久久精品盗摄| 亚洲视频一区在线观看| 亚洲国内精品在线| 精品亚洲欧美日韩| 国产日韩中文字幕在线| 亚洲五月天综合| 国产av精国产传媒| 欧美日韩极品在线观看一区| 免费观看国产精品视频| 最新中文字幕一区| 日韩一区二区电影在线| 国产精品一区二区久久久| 99视频精品全部免费看| 三上悠亚在线一区| 亚洲一二三在线观看| 免费av一级片| 国产精品久久久一区麻豆最新章节| 久久精品美女视频网站| 国内外成人免费激情在线视频| 国产精品高潮粉嫩av| 久久av二区| 久久久久久久久久久影视| 波多野结衣高清在线| 国产黄色片网站| 久久夜色精品国产噜噜亚洲av| 国产午夜免费视频| 国产成人精品aa毛片| 欧美性感一类影片在线播放| 91黑丝高跟在线| 久久久一本二本三本| 久草精品视频在线观看| 毛片av一区二区三区| 欧美日韩久久久久| 久久久国产成人精品| 97精品国产97久久久久久| 就去色蜜桃综合| 三上悠亚ssⅰn939无码播放| 国产jjizz一区二区三区视频| 久久综合色鬼综合色| 97成人在线视频| 国严精品久久久久久亚洲影视 | 裸模一区二区三区免费| 国产精品一品二区三区的使用体验| 原创国产精品91| 变态另类丨国产精品| 欧洲精品中文字幕| aa在线免费观看| 国产aⅴ精品一区二区三区色成熟| 欧美成人性战久久| 欧美精品一区二区三区在线四季| 日韩精品电影一区二区三区| 日本色综合中文字幕| 欧美精品丝袜中出| 青草青草久热精品视频在线观看| 日本少妇高潮喷水xxxxxxx| 成人国产精品免费观看| 欧美性生活影院| 91免费综合在线| 免费看涩涩视频| 国产一区二区三区综合| 美女av一区二区| 日韩在线观看电影完整版高清免费| 亚洲国产一区二区三区在线播| 在线成人免费av| 国产在线精品不卡| 欧美成人高清视频| 亚洲最大的黄色网| 久久青草国产手机看片福利盒子| 亚洲精品国精品久久99热一| 亚洲国产精品女人| 国产福利拍拍拍| 一区二区三区四区中文字幕| 成人国产精品久久久| 免费久久精品视频| 99re在线视频观看| 一区二区三区中文字幕在线观看| 国产一级大片免费看| 日韩电影在线观看网站| 亚洲v日韩v综合v精品v| 日本一本在线观看| 日韩国产欧美精品在线| 国模吧无码一区二区三区 | 亚洲丝袜美腿综合| 欧美日韩成人综合在线一区二区| 国产大学生av| 久久综合给合久久狠狠狠97色69| 欧美日韩国产二区| 色撸撸在线视频| 色综合老司机第九色激情| www.国产视频| 一区二区在线视频播放| 污污动漫在线观看| 久久综合久久综合久久综合| 亚洲美女搞黄| 国产成人自拍网| 欧美精品久久久久久久久久 | 亚洲成人av网址| 亚洲激情在线观看视频免费| 成熟了的熟妇毛茸茸| 少妇荡乳情欲办公室456视频| 在线视频精品一| 男女视频在线看| 久久精品在线| 国产亚洲福利一区| 色偷偷www8888| 欧美一级高清片| 黄免费在线观看| 国产一区二区三区四区福利| 国产精品成人免费观看| 都市激情亚洲色图| 欧美 日韩 国产精品| 久久精品国产99国产| 国产精品日韩在线播放| 欧美日韩一区二区在线免费观看| 99热这里只有精品9| 555夜色666亚洲国产免| www.午夜色| www.黄色一片| 一区二区三区高清国产| 久无码久无码av无码| 欧美一区二区黄片| 中文字幕亚洲天堂| 亚洲欧美日韩综合网| 成人午夜私人影院| 91传媒免费视频| 最新精品视频| 中日韩av在线播放| 在哪里可以看毛片| 日韩美一区二区| 麻豆国产欧美日韩综合精品二区| va亚洲va日韩不卡在线观看| 亚洲精品一二三区| 717成人午夜免费福利电影| 亚洲色图av在线| 成人自拍性视频| 国产免费xxx| 三上悠亚ssⅰn939无码播放| 在线免费看av的网站| 国产剧情一区在线| 日韩欧美在线字幕|