首頁  >  文章  >  後端開發  >  在 Golang 中如何處理 JSON 編組期間的錯誤?

在 Golang 中如何處理 JSON 編組期間的錯誤?

Linda Hamilton
Linda Hamilton原創
2024-10-30 17:19:25681瀏覽

How do you Handle Errors During JSON Marshalling in Golang?

Golang JSON 編組中的錯誤處理

JSON 資料結構無法表示循環引用,Go 的 json.Marshal 函數無法處理它們。因此,將循環結構傳遞給 Marshal 會導致無限遞歸和運行時恐慌。

除了循環結構之外,json.Marshal 在遇到不支援的型別或無效值的情況下還可以傳回非 nil 錯誤。

不支援的類型

當嘗試封送不支援的資料類型時,Marshal 傳回 UnsupportedTypeError。例如:

<code class="go">import "encoding/json"

func main() {
    ch := make(chan int)
    _, err := json.Marshal(ch)
    if _, ok := err.(*json.UnsupportedTypeError); ok {
        // Error: Unmarshal: unsupported type: chan int
    }
}</code>

不支援的值

在嘗試封送無效值時,Marshal 也可能傳回 UnsupportedValueError。例如:

<code class="go">import (
    "encoding/json"
    "math"
)

func main() {
    positiveInfinity := math.Inf(1)
    _, err := json.Marshal(positiveInfinity)
    if _, ok := err.(*json.UnsupportedValueError); ok {
        // Error: json: unsupported value: +Inf
    }
}</code>

透過了解這些條件,開發人員可以優雅地處理錯誤並確保 json.Marshal 回傳預期結果或處理適當的錯誤。

以上是在 Golang 中如何處理 JSON 編組期間的錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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