在Go 中將JSON 檔案讀取為JSON 物件
嘗試將JSON 檔案讀入變數時,後續嘗試循環遍歷它並檢索JSON 物件值可能會導致有問題的結果。使用 Marshal 命令的初始嘗試會產生數字輸出,而隨後嘗試在結構中儲存 JSON 值並使用 MarshalIndent 會產生字串輸出。
要成功,由 json.Unmarshal 填滿的介面值必須成為一個指標。正確的做法如下:
plan, _ := ioutil.ReadFile(filename) var data interface{} err := json.Unmarshal(plan, &data)
初次嘗試中觀察到的錯誤「Unmarshal(nil)」表示檔案讀取有問題。檢查 ioutil.ReadFile 傳回的錯誤至關重要。
此外,在 unmarshal 中使用空介面需要類型斷言才能將底層值作為 Go 原始類型存取。一種更好的方法涉及定義與 json.Unmarshal 一起使用的具體結構。
以上是如何在Go中正確讀取和解析JSON檔?的詳細內容。更多資訊請關注PHP中文網其他相關文章!