Json 如何在结构中定义多个名称标记

Json 如何在结构中定义多个名称标记,json,struct,go,Json,Struct,Go,我需要从mongo数据库中获取一个项,所以我定义了一个类似这样的结构 type Page struct { PageId string `bson:"pageId"` Meta map[string]interface{} `bson:"meta"` } 现在我还需要将其编码为JSON,但它将字段编码为大写(我得到的是PageId而不是PageId),因此我还需要为JSON定义字段标记。我尝试过类似的方法,但没有成功: type Page s

我需要从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"`
}
那么如何做到这一点,在一个结构中定义多个名称标记呢?

它说:

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

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

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

谢谢你的回答

下面是给像我这样懒惰的人的

不正确

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"`
}
type Page struct {
    PageId string                 `bson:"pageId" json:"pageId"`
    Meta   map[string]interface{} `bson:"meta" json:"pageId"`
}

此外,请确保它仅由空格分隔,而不是由选项卡分隔。查阅