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

是否可以使用带有多个JSON标签的结构?

刘玉石
2023-03-14
问题内容

我将请求发布到服务器并获得JSON格式的回复。我可以将其解组为一个结构。然后,我需要使用相同的数据但使用不同的JSON标签创建一个新的JSON文件。

例:

在以下代码中,我{"name":"Sam","age":20}从服务器获取并将其解组到struct Foo

type Foo struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

然后我需要将标签更改nameemployee_name并省略age

type Bar struct {
    Name string `json:"employee_name"`
    Age  int    `json:"-"`
}

之后,我将修改后的数据发送到另一台服务器。

我知道我可以创建一个新的Bar并将所有数据复制到其中,但是有很多字段。我想知道是否有办法像这样附加多个JSON标签:

type Foo struct {
    Name string `json:"name" json:"employee_name"`
    Age  int    `json:"age" json:"-"`
}

提前致谢。


问题答案:

这是不可能的。该encoding/json包只处理json在结构标记关键。如果json键多次列出(如您的示例中所示),则将使用第一个匹配项(在中实现StructTag.Get())。

请注意,这是该encoding/json软件包的实现限制,而不是Go
的实现限制。人们可以很容易地创建一个类似JSON编码包支持多个任一代码键(例如json1json2)或相同的键的多次出现(如在你的例子)。



 类似资料:
  • 问题内容: 这是根据官方文档提供的信息: 在PHP中可以使用四对不同的开始和结束标记。其中的两个和始终可用。另外两个是短标签和ASP样式标签,可以从php.ini配置文件中打开和关闭。因此,尽管有些人发现短标签和ASP样式标签很方便,但它们的可移植性较差, 通常不建议这样做 。 以我的经验,大多数服务器 确实 启用了短标签。打字 比打字要方便得多 程序员的便利性是一个重要因素,那么 为什么 不推荐

  • 问题内容: 因此,我在大学期间正在学习有关HTML列表的知识,这位教授说与其他标记(如和)一起没有结尾标记。那是正确的吗?因为最后我看到了很多使用tag的模板/主题,还有许多网站也教您存在,所以我不确定该相信谁以及正确的使用方式是什么? 我问这个问题的原因是因为上次我们了解了标记,他说,当您将鼠标悬停在该属性上时,该属性会为您提供一个显示在图像上方的文本,当我在此处询问该属性时,它仅是替换图像的替

  • 问题内容: 我一直在使用TwitterBootstrap构建网站,其许多功能都依赖于将内容包装在中,即使它们只是执行Javascript也是如此。我在Bootstrap文档所建议的策略上遇到了问题,因此我试图寻找其他解决方案。 但是后来我尝试完全删除该属性。我一直在使用,并让Javascript处理其余部分。而且有效。 但是有件事告诉我我不应该这样做。对?我的意思是,从技术上讲,它应该是某事的链接

  • 这类似于如何指定要运行哪个场景的问题 在问题中,他们给出了每个场景使用一个标记的示例。我想知道是否可以添加更多标签,比如在TestNG中,可以添加多个组。

  • 我有几份产品数据表。每个文件都是一个单独的文件。我想做的是使用iText根据Web表单的答案生成一组摘要/建议的操作,然后将所有相关的数据表附加到这些操作中。这样,我只需要在浏览器中打开一个新选项卡来打印所有信息,而不是为摘要打开一个选项卡,为所需的每个数据表打开一个选项卡。 那么,使用iText可以做到这一点吗?

  • 我尝试用以下方法调用三个引用游标参数: 但是listOfObjects只包含cursor1的内容,无法获得cursor2的内容。