如何在结构体中定义多个名称标签

我需要从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包的文件中说:

按照惯例,标记string是可选空间分隔的键:“值”对的串联。 每个键都是一个非空string,由非空格(U + 0020''),引号(U + 0022'“')和冒号(U + 003A':')组成。使用U + 0022'“'字符和Gostring文字语法。

你需要做的是使用空格而不是逗号作为标签string分隔符。

 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:"pageId"` } 

正确

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