ホームページ >バックエンド開発 >Golang >JSON を解析すると Go 構造体のフィールドが空になるのはなぜですか?

JSON を解析すると Go 構造体のフィールドが空になるのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-12 10:27:02878ブラウズ

Why are my Go struct fields empty when parsing JSON?

Go で JSON を構造体に解析する

JSON を Go 構造体に解析しようとすると、予期しない出力が発生します: 空の構造体の値および false のブール値。デフォルトでは、エンコーダー/デコーダーで認識されるように、構造体フィールドをエクスポートする必要があります (大文字で始まる)。コードの改訂版は次のとおりです。

// 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)
}

これらの変更により、エンコーダー/デコーダーは構造体のフィールドに適切にアクセスして変更できるようになり、目的の解析値が得られます。

以上がJSON を解析すると Go 構造体のフィールドが空になるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。