Maison > développement back-end > Golang > Comment aplatir la sortie sql.NullString dans Go JSON Marshalling ?

Comment aplatir la sortie sql.NullString dans Go JSON Marshalling ?

Patricia Arquette
Libérer: 2024-11-28 09:58:11
original
592 Les gens l'ont consulté

How to Flatten sql.NullString Output in Go JSON Marshalling?

Marshalling sql.NullString : Flattening Output

Lors du marshalling d'une structure Go avec un champ sql.NullString, il est possible de rencontrer un JSON de sortie avec un objet imbriqué représentant le Chaîne Nulle. Cependant, cette représentation imbriquée n'est peut-être pas souhaitable.

Solution

Pour aplatir la sortie et afficher uniquement la valeur, créez un type personnalisé qui intègre sql.NullString et implémente l'interface json.Marshaler.

type MyNullString struct {
    sql.NullString
}

func (s MyNullString) MarshalJSON() ([]byte, error) {
    if s.Valid {
        return json.Marshal(s.String)
    }
    return []byte(`null`), nil
}

type Company struct {
    ID   int          `json:"id"`              
    Abn  MyNullString `json:"abn,string"`
}
Copier après la connexion

Ce type personnalisé fournit une méthode MarshalJSON qui vérifie si la valeur NullString est valide. Si tel est le cas, il rassemble la valeur de la chaîne. Sinon, il marshale null.

En utilisant ce type personnalisé et en l'appliquant au champ Abn dans la structure Company, la sortie JSON sera aplatie, affichant uniquement la valeur Abn et en omettant l'objet imbriqué.

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