首页 > 后端开发 > Golang > 为什么我的 Go 结构无法正确解码 JSON?

为什么我的 Go 结构无法正确解码 JSON?

Patricia Arquette
发布: 2024-11-19 10:25:02
原创
196 人浏览过

Why is my Go struct not decoding JSON correctly?

将 JSON 解码为 Go 结构体

在 Go 中,将 JSON 文件解析为结构体需要使用encoding/json 包。但是,不正确的 JSON 结构解析可能会导致意外结果。

考虑下面提供的代码片段:

var settings struct {
    serverMode bool
    sourceDir  string
    targetDir  string
}

func main() {
    // ...
}
登录后复制

使用 JSON 配置文件:

{
    "serverMode": true,
    "sourceDir": ".",
    "targetDir": "."
}
登录后复制

您可能会遇到令人困惑的输出:

false  
(false and two empty strings)
登录后复制

出现此问题是因为未导出结构体元素。默认情况下,以小写字母开头的结构元素对 JSON 编码器/解码器不可见。要解决此问题,请通过大写首字母来导出结构体元素:

var settings struct {
    ServerMode bool `json:"serverMode"`
    SourceDir  string `json:"sourceDir"`
    TargetDir  string `json:"targetDir"`
}
登录后复制

导出结构体元素可确保 JSON 编码器/解码器可以访问和解码结构体值。这将导致 JSON 配置文件正确解析为结构。

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

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板