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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從 MongoDB 中獲取數據并將其作為 Golang 中的 JSON 發送到 API

如何從 MongoDB 中獲取數據并將其作為 Golang 中的 JSON 發送到 API

Go
蠱毒傳說 2022-06-01 12:30:30
我正在編寫一個 Golang API,當它被調用時,它會從兩個不同的 MongoDB 集合中獲取數據并將其附加到一個結構中,將其轉換為 JSON,然后進行字符串化并發送到 API(Amazon SQS)問題是,定義從 MongoDB 接收的數據的結構,雖然一些字段定義正確,但有些是不同的// IncentiveRule struct defines the structure of Incentive rule from Mongotype IncentiveRule struct {    ... Other vars    Rule               Rule               `bson:"rule" json:"rule"`    ... Other vars}// Rule defines the struct for Rule Object inside an incentive ruletype Rule struct {    ...    Rules          interface{}    `bson:"rules" json:"rules"`    RuleFilter     RuleFilter     `bson:"rule_filter" bson:"rule_filter"`    ...}// RuleFilter ...type RuleFilter struct {    Condition string        `bson:"condition" json:"condition"`    Rules     []interface{} `bson:"rules" json:"rules"`}雖然這可行,但interface{}內部定義的Rule結構是不同的,并且在獲得 BSON 并解碼和重新編碼為 JSON 時,而不是像JSON 中那樣編碼"fookey":"barvalue",它被編碼為"Key":"fookey","Value":"barvalue",如何避免這種行為并將其作為"fookey":"barvalue"
查看完整描述

1 回答

?
江戶川亂折騰

TA貢獻1851條經驗 獲得超5個贊

如果您使用interface{},則 mongo-go 驅動程序可以自由選擇它認為適合表示結果的任何實現。通常它會選擇bson.D表示文檔,它是鍵值對的有序列表,其中一對是一個結構體,具有一個字段 forKey和一個字段 for Value,因此 Go 值可以保留字段順序。

如果字段順序不是必需/重要的,您可以顯式使用bson.M代替interface{}[]bson.M代替[]interface{}。bson.M是一個無序映射,但它以 的形式表示字段fieldName: fieldValue,這正是您想要的。


查看完整回答
反對 回復 2022-06-01
  • 1 回答
  • 0 關注
  • 260 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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