在使用Go語言進行JSON反序列化(Unmarshal)過程中,有時候我們可能會遇到一些無法處理的錯誤欄位。這些錯誤欄位可能會導致程式終止,影響程式碼的正常執行。那麼,我們有沒有辦法在Unmarshal過程中跳過這些錯誤欄位呢?答案是肯定的。本文將為大家介紹如何在Go語言中使用一些技巧來跳過在Unmarshal期間遇到的錯誤字段,讓我們繼續往下看。
我正在使用 json.Unmarshal(body, outputStruct)
將位元組陣列轉換為結構。解組期間可能會出現錯誤。
例如,結構是:
type Item struct { Price float64 `json:"price"` Quantity int `json:"quantity"` }
如果我將 quantity
作為浮點值而不是整數傳遞,則會引發錯誤。我想知道如何只能解組有效字段並跳過有錯誤的字段?
所以如果我解組一個 json:
{ price: 10, quantity: 2.5 }
我只想取得結構中的 price
值,但將數量保留為初始預設值。
你不能。
如果您的 JSON 包含浮點數,您根本無法將其解組為 int。您必須:
"-"
) Quantity
,這樣它就不會失敗,並且只對Quantity(新結構)進行第二次解組並忽略錯誤。 2 是「最好的」方法,但我不確定「跳過類型錯誤的欄位」背後的邏輯是什麼?如果數量為 2.5,數量會是什麼值? 0?為什麼?
以上是如何在 go 中的'Unmarshal”期間跳過錯誤字段?的詳細內容。更多資訊請關注PHP中文網其他相關文章!