從MongoDB 資料庫存取資料並隨後將其編碼為JSON 時,如果您願意,可能會遇到挑戰為每種格式使用不同的欄位名稱。例如,雖然 MongoDB 可能需要名為「pageId」的字段,但您可能更願意將其編碼為 JSON 中的「pageId」。
多重標籤定義:被誤解的努力
您最初嘗試為結構定義多個名稱標籤導致失敗。您嘗試使用逗號作為標籤字串分隔符號:
type Page struct { PageId string `bson:"pageId",json:"pageId"` Meta map[string]interface{} `bson:"meta",json:"pageId"` }
但是,這種方法是不正確的。
成功之路:釋放空間的力量
要在結構體中成功定義多個名稱標籤,必須使用空格作為標籤字串分隔符號。應該如何完成:
type Page struct { PageId string `bson:"pageId" json:"pageId"` Meta map[string]interface{} `bson:"meta" json:"meta"` }
理解基本原理
reflect 套件的文件明確指出標籤字串應由非空字串組成鍵值對。每個鍵值對都以空格分隔,值使用 Go 字串文字語法引用。
Each value is quoted using U+0022 '"' characters and Go string literal syntax.
遵循此約定,您可以有效地為結構體定義多個名稱標籤並實現所需的編碼行為。
以上是如何在 Go Structs 中對 MongoDB 和 JSON 編碼使用不同的欄位名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!