Maison  >  Article  >  développement back-end  >  Pourquoi mon serveur HTTP Go renvoie-t-il des réponses JSON vides ?

Pourquoi mon serveur HTTP Go renvoie-t-il des réponses JSON vides ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-27 16:57:31161parcourir

Why Does My Go HTTP Server Return Empty JSON Responses?

Réponses JSON dans Go : résolution des problèmes liés aux réponses vides

Dans Go, la construction de réponses HTTP avec du contenu JSON peut poser des défis, en particulier lorsqu'il s'agit de résultats nuls. Cet article vise à résoudre un problème courant rencontré lors de la tentative de production de réponses JSON.

Énoncé du problème

Un débutant en Go tente d'implémenter un serveur HTTP simple avec une fonctionnalité de réponse JSON. Cependant, le serveur renvoie systématiquement une réponse vide avec un type de contenu "text/plain; charset=utf-8". Le développeur a comparé son code à un exemple en ligne mais ne parvient à identifier aucune différence.

Solution

Le nœud du problème réside dans la visibilité des champs de la structure. Dans Go, les champs de structure doivent être exportés (majuscules) pour être accessibles pour le marshaling JSON.

Exemple de code (original/incorrect) :

<code class="go">type ResponseCommands struct {
    key   string
    value bool
}</code>

Exemple de code (corrigé) :

<code class="go">type ResponseCommands struct {
    Key   string
    Value bool
}</code>

Lorsque les champs sont exportés, l'encodeur JSON peut accéder et encoder correctement leurs valeurs. Ce changement simple mais critique résout le problème et permet au serveur de renvoyer des réponses JSON valides.

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!

Déclaration:
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