gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 12:42:03 25 4
gpt4 key购买 nike

我需要从 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"`
}

那么如何做到这一点,在一个结构体中定义多个名称标签呢?

最佳答案

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

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

它在 documentation of the reflect package 中说:

By convention, tag strings are a concatenation of optionally space-separated key:"value" pairs. Each key is a non-empty string consisting of non-control characters other than space (U+0020 ' '), quote (U+0022 '"'), and colon (U+003A ':'). Each value is quoted using U+0022 '"' characters and Go string literal syntax.

关于json - 如何在结构中定义多个名称标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18635671/

25 4 0