首頁 > 後端開發 > Golang > Go 中何時 `json.Unmarshal` 拋出錯誤?

Go 中何時 `json.Unmarshal` 拋出錯誤?

Patricia Arquette
發布: 2024-11-19 12:47:02
原創
523 人瀏覽過

When Does `json.Unmarshal` Throw an Error in Go?

Go 中 json.Unmarshal 什麼時候回傳錯誤?

Go 中,json.Unmarshal 函數將 JSON 字串解析為結構體,但它並不總是回傳錯誤。但是,在某些情況下它確實會傳回錯誤。

當它不回傳錯誤時

當來源中的值不報告錯誤時,JSON 解碼器通常不會報告錯誤t 與目標中的那些匹配。例如,如果來源包含名為“status”的字段,但目標不包含,則不會引發錯誤。

錯誤案例

json。 Unmarshal 確實傳回以下場景中的錯誤:

  • 語法錯誤:如果 JSON 字串格式錯誤,例如缺少引號或標點符號。
  • JSON 值不正確可透過目標類型表示: 如果 JSON 值無法轉換為目標結構中對應的欄位類型。例如,嘗試將布林值解組到字串欄位中。

錯誤案例範例

type A struct {
    Name string `json:"name"`
}

var jsonString string = `{ "status": "false" }'`
var a A
error := json.Unmarshal([]byte(jsonString), &a)

fmt.Println(err) // prints cannot unmarshal bool into Go value of type string
登入後複製

在此範例中,拋出錯誤因為來源JSON 有一個boolean 類型的「status」字段,但目標結構體沒有對應的boolean 欄位。

以上是Go 中何時 `json.Unmarshal` 拋出錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板