首页  >  文章  >  后端开发  >  为什么我的 Go 结构体字段在解析 JSON 时为空?

为什么我的 Go 结构体字段在解析 JSON 时为空?

Barbara Streisand
Barbara Streisand原创
2024-11-12 10:27:02829浏览

Why are my Go struct fields empty when parsing JSON?

在 Go 中将 JSON 解析为结构

尝试将 JSON 解析为 Go 结构时,遇到意外输出:空结构值和一个错误的布尔值。默认情况下,必须导出结构体字段(以大写字母开头)才能被编码器/解码器识别。这是代码的修订版本:

// Define your struct with exported fields
type Settings struct {
    ServerMode bool `json:"serverMode"`
    SourceDir  string `json:"sourceDir"`
    TargetDir  string `json:"targetDir"`
}

func main() {
    // Open the config file
    configFile, err := os.Open("config.json")
    if err != nil {
        printError("opening config file", err.Error())
    }

    jsonParser := json.NewDecoder(configFile)
    settings := Settings{} // Initialize the struct

    // Decode the JSON
    if err = jsonParser.Decode(&settings); err != nil {
        printError("parsing config file", err.Error())
    }

    fmt.Printf("%v %s %s", settings.ServerMode, settings.SourceDir, settings.TargetDir)
}

通过这些修改,编码器/解码器可以正确访问和修改结构体的字段,从而产生所需的解析值。

以上是为什么我的 Go 结构体字段在解析 JSON 时为空?的详细内容。更多信息请关注PHP中文网其他相关文章!

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