当前位置: 首页 > 面试题库 >

Golang结构的XML和JSON标签?

梁楷
2023-03-14
问题内容

我有一个应用程序,可以根据HTTP请求标头输出为JSON或XML。我可以通过将正确的标签添加到我正在使用的结构中来实现正确的输出,但是我不知道如何为JSON和XML指定标签。

例如,此序列化以更正XML:

type Foo struct {
    Id          int64       `xml:"id,attr"`
    Version     int16       `xml:"version,attr"`
}

…这会生成正确的JSON:

type Foo struct {
    Id          int64       `json:"id"`
    Version     int16       `json:"version"`
}

…但这不适用于任何一个:

type Foo struct {
    Id          int64       `xml:"id,attr",json:"id"`
    Version     int16       `xml:"version,attr",json:"version"`
}

问题答案:

Go标签以空格分隔。从手册:

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

因此,您要编写的是:

type Foo struct {
    Id          int64       `xml:"id,attr" json:"id"`
    Version     int16       `xml:"version,attr" json:"version"`
}


 类似资料:
  • 问题内容: 我正在尝试编写一个可以处理json响应的结构类型 由于键每次都不相同…不同的响应可能包含或多或少的键,不同的键,如您所见,使用50x100返回特定大小的多个图像,我如何创建与此匹配的结构? 我可以这样: 用于单个项目,以及用于特定键的列表。但是包含的结构看起来如何? 就像是: 可能有效,但我无法列举所有可能的图像尺寸响应。另外,Image_Urls末尾没有真正的列表。我希望能够将其直接

  • Go 语言中的结构体和 C 语言中结构体一样,都是用来保存一组 不同类型的数据 Go 语言中的结构体和 C 语言中结构体一样,都需要先定义结构体类型再利用结构体类型定义结构体变量 定义结构体类型 type 类型名称 struct{ 属性名称 属性类型 属性名称 属性类型 ... ... } type Studentstruct { name string age int

  • 我正在尝试编写一个能够处理json响应的结构类型,就像这样 由于每次键都不一样…不同的响应可能有或多或少的键,不同的键,正如您可以看到的50x100返回特定大小的多个图像,我如何创建与此匹配的结构? 我可以像这样做: 以及针对特定键的它们的列表。但包含结构的外观如何? 类似于: 可能有效,但我无法列举所有可能的图像大小响应。最后的Image_Urls并不是一个真正的列表。我希望能够将它直接转储到j

  • 问题内容: 可以在Golang中定义一个不变的结构吗?一旦初始化,则只能对struct的字段进行读取操作,而无需修改字段值。如果是这样,该怎么做。 问题答案: 通过使其成员不导出并提供阅读器,可以在其程序包外部将结构设为只读。例如: 和用法:

  • 主要内容:一个 XML 文档实例,XML 文档形成一种树结构,实例:,XML 文档实例XML 文档形成了一种树结构,它从"根部"开始,然后扩展到"枝叶"。 一个 XML 文档实例 XML 文档使用简单的具有自我描述性的语法: <?xml version="1.0" encoding="UTF-8"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me th

  • 问题内容: 我来自拥有LINQ的.NET世界,因此我可以像在SQL中通常看到的那样进行内存中查询。 我要对该结构进行切片,希望将其按8个字段分组,然后对另一个整数字段求和。就像是: 我以为: 创建一个Equal函数,以比较结构(那八个字 段)。遍历我正在分析的集合。对于每个项目, 检查它是否已经在哈希表中。如果存在=>我对字段求和。如果不是=>我将新项目添加到哈希表。 有没有更好的方法或任何美观,