当前位置: 首页 > 知识库问答 >
问题:

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

钱华晖
2023-03-14

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

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

共有2个答案

房学文
2023-03-14

谢谢你的回答。

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

不正确

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"`
}
任昊阳
2023-03-14

reflect软件包的文档中指出:

按照惯例,标记字符串是可选的空格分隔键:“值”对的串联。每个键都是非空字符串,由空格(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"`
}
 类似资料:
  • 问题内容: 我需要从mongo数据库中获取一个项目,所以我定义了一个这样的结构 现在,我还需要将其编码为JSON,但它会将字段编码为大写(我得到PageId而不是pageId),因此我还需要为JSON定义字段标签。我尝试过类似的方法,但是没有用: 那么,如何在结构中定义多个名称标签呢? 问题答案: 它在软件包的文档中说: 按照惯例,标签字符串是由空格分隔的键:“值”对的串联。每个键都是一个非空字符

  • 问题内容: 我正在使用JAXB来基于某些XSD架构生成Java类。对于诸如以下的元素: jaxb生成以下代码: 问题是我们需要使用一些专有的XML工具,这些工具依赖于getter / setter方法的命名约定。例如,对于字段REC_LOC,他们希望使用名为getRecLoc(String value)和setRecLoc()的方法,而不是getRECLOC()。 有什么方法可以自定义jaxb生成

  • 我正在使用docker-compose创建我的开发环境。我想建立一个特定的图像,但我不知道如何为该图像设置名称。 当我执行时,一切正常,但是我得到了一个新图像的随机名称。是否可以为生成映像设置名称?

  • 我正在尝试使用camel Bindy将管道分隔的字符串数据转换为xml。但它正在生成标记和类名。此外,我想添加命名空间到我的标记。 我试图使用Camel进程来生成自定义标记,但它不起作用。 输出result.xml 上面发布的是给定转换的输出。在第一个标记中,它打印带有整个包和类名的标记名(例如:com.abc.domain.pojo)。另外,我试图生成命名空间,但在输出中没有生成命名空间。

  • 问题内容: 在Golang中,JSON结构标记可以使用多个名称吗? 问题答案: 请参阅如何在结构中定义多个名称标签,以了解如何在一个结构字段上定义多个标签。 您也可以使用a 代替您的结构。 或者,您可以在结构中使用这两种类型,并使用make方法将返回正确的模式。

  • 问题 你想实现一个类,除了使用 __init__() 方法外,还有其他方式可以初始化它。 解决方案 为了实现多个构造器,你需要使用到类方法。例如: import time class Date: """方法一:使用类方法""" # Primary constructor def __init__(self, year, month, day): self.