Maison >développement back-end >Golang >Comment désorganiser JSON avec différents formats de réponse dans 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 :
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>
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>
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!