如何在结构体中定义多个名称标签
我需要从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"` }