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

Golang在一个字段中有多个json标记名称

寿和通
2023-03-14
问题内容

在Golang中,JSON结构标记可以使用多个名称吗?

type Animation struct {
    Name    string  `json:"name"`
    Repeat  int     `json:"repeat"`
    Speed   uint    `json:"speed"`
    Pattern Pattern `json:"pattern",json:"frames"`
}

问题答案:

请参阅如何在结构中定义多个名称标签,以了解如何在一个结构字段上定义多个标签。

您也可以使用a type Info map[string]interface{}代替您的结构。

或者,您可以在结构中使用这两种类型,并使用make方法Details()将返回正确的模式。

type Animation struct {
    Name    string  `json:"name"`
    Repeat  int     `json:"repeat"`
    Speed   uint    `json:"speed"`
    Pattern Pattern `json:"pattern"`
    Frame   Pattern `json:"frames"`
}

func (a Animation) Details() Pattern {
    if a.Pattern == nil {
        return a.Frame
    }
    return a.Pattern
}


 类似资料:
  • “想要解决方案B” 有什么办法可以做到这一点吗?

  • 问题内容: 我想反序列化JSON(使用Jackson 1.9.11和RestTemplate 1.0.1),其中一个字段可能具有更多类型含义,例如: 要么 一个或另一种情况对于一个特定类型的设置器(String od custom Response类)都可以正常工作,但是当我将实体bean重写的设置器放入能够处理这两种情况时,将引发异常: 我当时在考虑三种解决方案,但没有任何一种可行: 仅使用St

  • 假设我已将以下对象序列化为json字符串: 现在我想反序列化它,但是我想把名称分成两个字段,和。我该怎么做呢? 我希望最终的结果是类似于: 这对Gson有可能吗?

  • 原来那很难!我怎么能那样做?我将它记录在JSON中,但我不能很好地记录多个JSON字段! 我做过的事: 我的Dropwizard配置具有以下附加程序: 会显示附加字段,但这些值似乎在配置文件中是固定的,不会更改。有一个“CustomFieldNames”,但没有关于如何使用它的文档,而且无论我在其中放了什么,我都会得到一个“没有字符串参数构造函数/工厂方法从字符串值反序列化”错误。(这些文档有一个

  • 我开始使用验证框架用jax-rs验证json请求 是否可以根据另一个字段验证一个字段? 提前致谢

  • 问题内容: 我如何定义一个具有两个计算字段的视图,例如… …并根据前两个计算字段创建第三个计算字段,如… …? 当我按名称引用前两个计算字段时,我收到一条消息,指出字段未知。 谢谢! 问题答案: 由于视图中不允许子查询,因此您需要通过创建多个视图来模拟它们。 例如,如果直接执行此查询,将解决您的问题: 根据MySQL文档,视图在FROM子句中具有不能包含子查询的限制。要变通解决此限制并将该查询转换