首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在结构中重写类型?

如何在结构中重写类型?
EN

Stack Overflow用户
提问于 2021-11-07 22:32:16
回答 1查看 58关注 0票数 0

我不能更改的来源:

代码语言:javascript
复制
{
    "perfectly_normal": "bar"
    "fooBool": "0"
}

桌面上有什么:

代码语言:javascript
复制
type hwo struct {
    normality  string `json:"perfectly_normal"`
    makeMeBool ?????? `json:"fooBool"`
}

json.Unmarshal(body, hwo)

什么是将"0"/"1"转换为false/true的好方法

EN

回答 1

Stack Overflow用户

发布于 2021-11-07 22:58:25

您可以使用DTO和方法将传递的DTO转换为所需的struct

下面是一些伪代码,其中DTO用于基于DTO中的值创建新的hwo结构。

在不只是从intboolean转换的情况下,这提供了一个额外的好处,即能够改变来自DTO的任何数据。

注释中提到的自定义类型的marshalunmarshal函数也是一个很好的建议,而且可能更简单。

代码语言:javascript
复制
type hwo struct {
    normality  string  `json:"perfectly_normal"`
    makeMeBool boolean `json:"fooBool"`
}

type DTO struct {
  normality string
  fooBool   int
}

func ToHwo(dto DTO) hwo {
  fooBool := true
  if dto.fooBool == 0 {
    fooBool = false
  }

  return hwo {
    normality: dto.nornality,
    fooBool: fooBool,
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69877052

复制
相关文章

相似问题

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