在 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中文网其他相关文章!