Maison > développement back-end > Golang > Comment puis-je obtenir une sélection de champ dynamique dans les réponses JSON de Go ?

Comment puis-je obtenir une sélection de champ dynamique dans les réponses JSON de Go ?

DDD
Libérer: 2024-12-14 03:50:10
original
778 Les gens l'ont consulté

How Can I Achieve Dynamic Field Selection in Go's JSON Responses?

Sélection de champ dynamique dans les réponses JSON

Dans Go, les développeurs encodent souvent les structures sous forme de réponses JSON. Pour permettre aux clients de personnaliser la réponse, vous souhaiterez peut-être exclure ou inclure de manière sélective des champs en fonction de leur demande.

Suppression ou masquage dynamique des champs

Malheureusement, Go est statique- Les balises de structure JSON définies (par exemple, json:"date") ne permettent pas la suppression ou le masquage de champs dynamiques. La balise json:"-" ignore complètement un champ, ce qui ne convient pas pour masquer sélectivement des champs.

Solution avec Maps

Une solution possible consiste à utiliser une carte [string]interface{} au lieu d'une structure. Cela vous permet d'éliminer dynamiquement des champs en appelant la fonction de suppression :

type SearchResponse map[string]interface{}

func (r SearchResponse) RemoveField(field string) {
    delete(r, field)
}
Copier après la connexion

Pour générer la réponse, vous pouvez créer une carte, la remplir avec vos données et supprimer les champs indésirables :

m := SearchResponse{
    "date":      "2023-03-01",
    "company":   "Acme Corp",
    "industry":  "Software",
    "continent": "North America",
}
m.RemoveField("industry")
Copier après la connexion

La carte résultante ne contiendra que les champs souhaités pour la réponse :

{
  "date": "2023-03-01",
  "company": "Acme Corp",
  "continent": "North America"
}
Copier après la connexion

Cette approche offre une sélection dynamique des champs et constitue une alternative appropriée à la modification des structures au moment de l'exécution.

Considérations supplémentaires

Une alternative à l'exclusion sélective des champs consiste à récupérer uniquement les champs demandés de la base de données. Cela peut être plus efficace mais n'est peut-être pas possible dans tous les cas.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal