Maison >développement back-end >Golang >Comment omettre les structures imbriquées vides dans Go JSON Marshal ?

Comment omettre les structures imbriquées vides dans Go JSON Marshal ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-16 02:41:14598parcourir

How to Omit Empty Nested Structs in Go JSON Marshal?

Go JSON Marshal : Omettre les structures imbriquées vides

La balise json:",omitempty" dans Go vous permet d'exclure les champs qui ont des champs vides. valeurs de la sortie JSON. Cependant, ce comportement ne s'applique pas aux structures de valeur nulle.

Pour omettre une structure imbriquée si elle comporte des champs vides, vous pouvez utiliser un pointeur au lieu d'une structure sans pointeur. Cela garantit que la structure est traitée comme vide si aucune valeur non nulle ne lui a été attribuée.

Par exemple, considérons la structure suivante :

type ColorGroup struct {
    ID     int `json:",omitempty"`
    Name   string
    Colors []string
}

type Total struct {
    A *ColorGroup `json:",omitempty"` // Use pointer
    B string       `json:",omitempty"`
}

Dans ce cas, si le groupe .A ne reçoit pas de valeur non nulle, il sera traité comme vide et omis de la sortie JSON. Cela contraste avec l'utilisation d'une structure sans pointeur, qui inclurait toujours le group.A vide dans la sortie JSON.

Le lien de terrain de jeu suivant démontre ce comportement : https://play.golang.org/p /3i7rh4e3t3D

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