首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在一个结构中定义多个name标记

如何在一个结构中定义多个name标记
EN

Stack Overflow用户
提问于 2013-09-05 19:56:28
回答 2查看 61.7K关注 0票数 173

我需要从mongo数据库中获取一个项目,所以我定义了一个结构,如下所示

代码语言:javascript
复制
type Page struct {
    PageId string                 `bson:"pageId"`
    Meta   map[string]interface{} `bson:"meta"`
}

现在我还需要将其编码为JSON,但是它将字段编码为大写(我得到的是PageId而不是pageId),所以我还需要为JSON定义字段标记。我试过这样的方法,但不起作用:

代码语言:javascript
复制
type Page struct {
    PageId string                 `bson:"pageId",json:"pageId"`
    Meta   map[string]interface{} `bson:"meta",json:"pageId"`
}

那么如何在一个结构中定义多个name标签呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-05 20:07:58

上面写着in the documentation of the reflect package

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

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

代码语言:javascript
复制
type Page struct {
    PageId string                 `bson:"pageId" json:"pageId"`
    Meta   map[string]interface{} `bson:"meta" json:"meta"`
}
票数 314
EN

Stack Overflow用户

发布于 2015-06-04 18:18:53

感谢你接受的答案。

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

不正确的

代码语言:javascript
复制
type Page struct {
    PageId string                 `bson:"pageId",json:"pageId"`
    Meta   map[string]interface{} `bson:"meta",json:"pageId"`
}

正确的

代码语言:javascript
复制
type Page struct {
    PageId string                 `bson:"pageId" json:"pageId"`
    Meta   map[string]interface{} `bson:"meta" json:"pageId"`
}
票数 86
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18635671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档