从 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中文网其他相关文章!