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

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

Barbara Streisand
リリース: 2024-11-12 10:27:02
オリジナル
836 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート