go Lang load无法处理yaml文件

go Lang load无法处理yaml文件

php小编子墨发现,许多Go语言开发者在处理yaml文件时遇到了问题。尽管Go语言提供了load函数用于加载yaml文件,但是该函数却无法正确处理yaml文件的解析。这个问题导致了很多开发者在处理yaml文件时遇到了困难。那么,如何解决这个问题呢?在本文中,我们将为大家介绍一些解决方案,帮助开发者顺利处理yaml文件。

问题内容

我正在尝试读取 yaml 文件并将其存储在变量中,但由于某种原因,yaml 文件中的数组对象无法解组该文件。它显示空白数据。

下面是我的yaml文件内容

  1. ---version: "1.2"bunits: - name: buname bugroupid: asd bustgroupid: asd - name: buname2 bugroupid: asd2 bustgroupid: asd2

登录后复制

下面是正在使用的代码

  1. type SResponse struct { Version string `json:"version"` BUnits []BUnit `json:"bUnits"`}type BUnit struct { Name string `json:"name"` BuUnitGroupID string `json:"buGroupID"` BuUnitStGroupID string `json:"buStaticGroupID"`}func main() { _printf := fmt.Printf _printf("Start") var sListResponse SResponse source, err2 := ioutil.ReadFile("squads2.yml") if err2 != nil { _printf("Couldn't read yaml file.")} err2 = yaml.Unmarshal(source, &sListResponse) if err2 != nil { _printf("Error") } _printf("Output: %s", sListResponse)}

登录后复制

代码读取版本部分,但 bunits 数组为空。请提出建议。

解决方法

您的结构体用 json 标记进行装饰 – 您可能需要也可能不需要(取决于您稍后是否以 json 格式导出/导入此数据)。但你手头的问题是 yaml 导入 – 所以你需要用 yaml 标签来装饰你的 struct 定义。

要支持 json 和 yaml 编组/解组,只需更新您的标签,如下所示:

  1. type SResponse struct { Version string `json:"version" yaml:"version"` BUnits []BUnit `json:"bUnits" yaml:"bUnits"`}type BUnit struct { Name string `json:"name" yaml:"name"` BuUnitGroupID string `json:"buGroupID" yaml:"buGroupID"` BuUnitStGroupID string `json:"buStaticGroupID" yaml:"buStaticGroupID"`}

登录后复制

或者如果您不需要 json 编码/解码,则只需删除 json 标签即可。

以上就是go Lang load无法处理yaml文件的详细内容,更多请关注【创想鸟】其它相关文章!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
编程技术

Go:如何指定类型约束,其中方法的参数类型与接收者的类型相同

2025-3-1 16:05:24

编程技术

在从 getter 返回私有切片字段之前,是否应该对它们使用复制?

2025-3-1 16:05:41

0 条回复 A文章作者 M管理员
欢迎您,新朋友,感谢参与互动!
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
私信列表
搜索