亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

mgo 接收不確定結構體請求參數

標簽:
Go

在使用 Python 写 web 后端时,我不必知道 json 请求参数有哪些字段,获取之后再慢慢解析和参数格式的校验;但是在使用 mgo 时我得先定义能和请求参数匹配得结构体,成功绑定之后才能够得到请求参数,虽然不太适应,但这样做能够很清楚地获知请求参数和类型,并减少了自己手动校验的一些步骤。相比于 Python 这种动态类型的语言来说,很能够清楚地反应一个函数的请求与返回。

但是,最近在做一个自定义表单的时候遇到问题:如何在请求参数数量不确定类型不确定的情况下绑定

例如,当我想保存表单内容时,我是这样定义的:

type TList struct {
    Id string `bson:",omitempty"`
    Tag string `json:"tag" bson:"tag"`
    Title string `json:"title" bson:"title"`
    Subtitle string `json:"subtitle" bson:"subtitle"`
}

但是自定义表单各个字段有没有都是不确定的,包括内容,如果不是数组的形式的话我想把它们都绑定,难道全部写死所有的情况?全部写死不可能的,这辈子都不可能的。果然还是用得少,bson.M 就可解决问题

// 改善后type TList struct {
    Id string `bson:",omitempty"`
    Tag string `json:"tag" bson:"tag"`
    Extra bson.M `bson:",inline"`
}

bson.M 结构体就是 map [string] interface{},是一个 map,可以用它来接受自己定义得任意类型,十分灵活,但貌似这样保存数据的话还是一坨,并且在不清楚 extra 里面有什么变量的情况下还得遍历,总觉得不是很完美的办法,谁有好办法可以告诉我一下



作者:大白杏仁
链接:https://www.jianshu.com/p/71df58e9c05f

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消