首页 > 后端开发 > Golang > 如何在 Go Structs 中对 MongoDB 和 JSON 编码使用不同的字段名称?

如何在 Go Structs 中对 MongoDB 和 JSON 编码使用不同的字段名称?

DDD
发布: 2024-12-03 01:06:10
原创
851 人浏览过

How Can I Use Different Field Names for MongoDB and JSON Encoding in Go Structs?

克服 MongoDB 结构标记和 JSON 编码的限制

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板