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!