首页 >后端开发 >Golang >为什么我无法将 JSON 解析到我的 Go 结构中?

为什么我无法将 JSON 解析到我的 Go 结构中?

Linda Hamilton
Linda Hamilton原创
2024-11-12 04:25:02251浏览

Why Can't I Parse JSON into My Go Struct?

将 JSON 解析为 Go 结构体

将 JSON 解析为 Go 结构体可以方便地访问结构化数据配置。虽然您提供的代码片段编译时没有错误,但无法使用正确的值填充结构体字段。

解决问题

问题在于导出的状态你的结构元素。在 Go 中,为了让 JSON 包在编码/解码期间可以访问结构体元素,它必须以大写字母开头。这确保了可以在包外访问该元素。

更正代码

要解决此问题,您需要将每个结构体元素的第一个字母设为大写。更正后的代码如下所示:

var settings struct {
    ServerMode bool `json:"serverMode"`
    SourceDir  string `json:"sourceDir"`
    TargetDir  string `json:"targetDir"`
}

通过将结构元素名称大写,您实际上是在导出它们,使它们可以用于 JSON 编码和解码。现在,当 JSON 解析器遇到 JSON 文件中相应的字段名称时,它会正确地将解析后的值分配给结构体字段。

预期输出

制作后进行此更正后,您的程序现在应该打印 config.json 文件中指定的正确设置值:

true . .

以上是为什么我无法将 JSON 解析到我的 Go 结构中?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn