我需要从 mongo 数据库中获取一个项目,所以我定义了一个这样的结构
type Page struct { PageId string `bson:"pageId"` Meta map[string]interface{} `bson:"meta"` }
现在我还需要将它编码为 JSON,但它将字段编码为大写(我得到的是 PageId 而不是 pageId),所以我还需要为 JSON 定义字段标签。我试过这样的事情,但没有奏效:
type Page struct { PageId string `bson:"pageId",json:"pageId"` Meta map[string]interface{} `bson:"meta",json:"pageId"` }
那么如何做到这一点,在结构中定义多个名称标签?
它在reflect包的文档中说:
reflect
按照惯例,标签字符串是可选的空格分隔键:“值”对的串联。每个键都是一个非空字符串,由除空格 (U+0020 ‘ ‘)、引号 (U+0022 ‘“’) 和冒号 (U+003A ‘:’) 以外的非控制字符组成。每个值都被引用使用 U+0022 ‘“’ 字符和 Go 字符串文字语法。
您需要做的是使用空格而不是逗号作为标记字符串分隔符。
type Page struct { PageId string `bson:"pageId" json:"pageId"` Meta map[string]interface{} `bson:"meta" json:"meta"` }