首頁 >後端開發 >Golang >為什麼我無法將 JSON 解析到我的 Go 結構中?

為什麼我無法將 JSON 解析到我的 Go 結構中?

Linda Hamilton
Linda Hamilton原創
2024-11-12 04:25:02253瀏覽

Why Can't I Parse JSON into My Go Struct?

將 JSON 解析為 Go 結構體

將 JSON 解析為 Go 結構體可以方便地存取結構化資料配置。雖然您提供的程式碼片段編譯時沒有錯誤,但無法使用正確的值填入結構體欄位。

解決問題

問題在於導出的狀態你的結構元素。在 Go 中,為了讓 JSON 套件在編碼/解碼期間可以存取結構體元素,它必須以大寫字母開頭。這確保了可以在包外存取該元素。

修正代碼

要解決此問題,您需要將每個結構體元素的第一個字母設為大寫。更正後的程式碼如下所示:

var settings struct {
    ServerMode bool `json:"serverMode"`
    SourceDir  string `json:"sourceDir"`
    TargetDir  string `json:"targetDir"`
}

透過將結構元素名稱大寫,您實際上是在匯出它們,使它們可以用於 JSON 編碼和解碼。現在,當 JSON 解析器遇到 JSON 檔案中對應的欄位名稱時,它會正確地將解析後的值指派給結構體欄位。

預期輸出

製作後進行此更正後,您的程式現在應該列印 config.json 檔案中指定的正確設定值:

true . .

以上是為什麼我無法將 JSON 解析到我的 Go 結構中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn