ホームページ  >  記事  >  バックエンド開発  >  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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。