"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment gérez-vous les erreurs lors du regroupement JSON dans Golang ?

Comment gérez-vous les erreurs lors du regroupement JSON dans Golang ?

Publié le 2024-11-12
Parcourir:930

How do you Handle Errors During JSON Marshalling in Golang?

Gestion des erreurs dans Golang JSON Marshalling

Les structures de données JSON ne peuvent pas représenter les références cycliques, et la fonction json.Marshal de Go ne peut pas les gérer. En conséquence, transmettre des structures cycliques à Marshal entraîne une récursivité infinie et une panique d'exécution.

Au-delà des structures cycliques, json.Marshal peut également renvoyer des erreurs non nulles dans les situations où il rencontre des types non pris en charge ou des valeurs non valides.

Types non pris en charge

Marshal renvoie une erreur UnsupportedTypeError lors de la tentative de marshalage d'un type de données non pris en charge. Par exemple :

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
    }
}

Valeurs non prises en charge

Marshal peut également renvoyer une UnsupportedValueError lorsqu'il tente de rassembler une valeur non valide. Par exemple :

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
    }
}

En comprenant ces conditions, les développeurs peuvent gérer les erreurs avec élégance et s'assurer que json.Marshal renvoie les résultats attendus ou gère les erreurs appropriées.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3