首頁 > 後端開發 > Golang > 主體

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

Linda Hamilton
發布: 2024-10-30 17:19:25
原創
680 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!