Maison > développement back-end > Golang > le corps du texte

Comment désorganiser JSON avec différents formats de réponse dans Go ?

Linda Hamilton
Libérer: 2024-10-27 10:00:30
original
670 Les gens l'ont consulté

How to Unmarshal JSON with Varying Response Formats in Go?

Désorganisation de JSON avec différents formats de réponse dans Go

Lors de la consommation de points de terminaison externes, vous pouvez rencontrer des réponses JSON avec différents formats. La gestion de ces variations peut être difficile, surtout lorsque vous souhaitez structurer votre réponse dans un type de données spécifique.

Le dilemme

Vous êtes confronté à un point de terminaison qui renvoie JSON. en deux formats :

  • Format 1 : { "message": "Message" }
  • Format 2 : { "message": ["ERROR_CODE"] }

Le défi est de créer une structure Go pouvant prendre en charge les deux formats de réponse.

Une approche simple

Au départ, vous avez envisagé d'utiliser deux structures distinctes, une pour chaque format. Cependant, cette approche n'est pas idéale car elle nécessite plusieurs tentatives de décodage et gestion des erreurs.

Une solution plus élégante

Une solution plus élégante consiste à désorganiser le JSON dans une interface {} taper. Interface{} est un type spécial dans Go qui peut contenir n'importe quelle valeur, quel que soit son type spécifique.

<code class="go">type Response struct {
    Message interface{} `json:"message"`
}</code>
Copier après la connexion

Une fois désorganisé, vous pouvez utiliser une assertion de type ou un commutateur de type pour inspecter le type du champ Message. .

<code class="go">switch x := r.Message.(type) {
    case string:
        // Handle string message
    case []interface{}:
        // Handle array message
    default:
        // Handle unexpected type
}</code>
Copier après la connexion

Cette approche vous permet de gérer les deux formats de réponse au sein d'une seule structure, offrant ainsi une solution plus robuste et plus maintenable.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!