gpt4 book ai didi

GoYAML - 将字符串输入转换为 Unmarshal 上的类型

转载 作者:数据小太阳 更新时间:2023-10-29 03:08:36 25 4
gpt4 key购买 nike

我有一个像这样为我的 Yaml 文件定义的结构:

type Service struct {
ServiceName string `yaml:"service_name"`
PipelineType PipelineType `yaml:"pipeline_type"`
}

在文件中,这个结构以字符串的形式出现:

    service_name: service
pipeline_type: app

我的类型是这样定义的:

// PipelineType Pipeline Types
type PipelineType struct {
Value string
}

var (
AppPipeline = PipelineType{"app"}
...
)

由于类型声明,我收到以下错误(预期):

line 4: cannot unmarshal !!str `app` into main.PipelineType

有没有办法告诉 GoYAML,或者创建某种形式的构造函数来使用 string(PipelineType) 或类似的东西转换值?

或者,是否有一种“GoYAML”友好的方式来做到这一点?

最佳答案

试试这个:

type Service struct {
ServiceName string `yaml:"service_name"`
PipelineType PipelineType `yaml:"pipeline_type"`
}

func (s *Service) myYml() *Service {

yamlFile, err := ioutil.ReadFile("service.yaml")
if err != nil {
log.Println(err.Error())
}
err = yaml.Unmarshal(yamlFile, s)
if err != nil {
log.Println(err.Error())
}

return s
}

得到它:

var s Service
s.myYml()

关于GoYAML - 将字符串输入转换为 Unmarshal 上的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56590174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com