首頁 >後端開發 >Golang >如何在 Go 中為結構體欄位定義多個名稱標籤?

如何在 Go 中為結構體欄位定義多個名稱標籤?

Linda Hamilton
Linda Hamilton原創
2024-12-08 00:29:19930瀏覽

How Can I Define Multiple Name Tags for a Struct Field in Go?

在結構體中定義多個名稱標籤

如您所遇到的,您可能需要為結構體欄位定義多個名稱標籤來適應不同的序列化格式,例如BSON 和JSON。提供的範例示範了需要將結構編碼為 JSON,同時保持小寫欄位名稱,儘管 BSON 欄位名稱是大寫的。

此問題的解決方案是用空格而不是逗號分隔標籤字串分隔符號。對程式碼進行以下修改將解決該問題:

type Page struct {
    PageId string                 `bson:"pageId" json:"pageId"`
    Meta   map[string]interface{} `bson:"meta" json:"meta"`
}

根據反射包的文檔,標記字串是由空格分隔的「key:'value'」對的串聯。每個鍵都是一個非空字串,不得包含控製字元、空格、引號或冒號。每個值都用雙引號括起來,並遵循 Go 字串文字語法。

以上是如何在 Go 中為結構體欄位定義多個名稱標籤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn