Maison > développement back-end > Golang > Comment analyser correctement les structures imbriquées dans les structures Go à l'aide de SQLX ?

Comment analyser correctement les structures imbriquées dans les structures Go à l'aide de SQLX ?

Barbara Streisand
Libérer: 2024-11-25 12:13:12
original
821 Les gens l'ont consulté

How to Correctly Scan Nested Structs into Go Structs Using SQLX?

Analyse de structures imbriquées SQLX

Lorsque vous tentez d'analyser les résultats d'une requête dans des structures imbriquées à l'aide de SQLX, il est crucial de comprendre l'approche correcte.

Dans l'exemple fourni, une erreur d'incompatibilité de type se produit car la structure Adresse n'est pas correctement intégrée dans la structure Client. Pour résoudre ce problème, l'intégration est requise.

Structs intégrés

Les structures intégrées permettent d'accéder aux champs intégrés sans avoir besoin de les préfixer avec le nom du type intégré. Cela simplifie l'accès aux champs et garantit que les champs de la structure intégrée sont correctement renseignés lors de l'analyse des résultats de la requête.

type Customer struct {
    Id        int
    Name      string
    Address   // Embedded struct without tags
}

type Address struct {
    Street string  `db:"street"`
    City   string  `db:"city"`
}
Copier après la connexion

Requête mise à jour

En intégrant la structure Adresse, SQLX attribuera automatiquement les valeurs de la résultat de la requête dans les champs appropriés en fonction de leurs balises de base de données.

customer := models.Customer{}
err := db.Get(&customer, `select * from users where>
Copier après la connexion

JSON Marshalling

Remarque que l'intégration de la structure Address aplatira la sortie JSON, supprimant l'objet d'adresse imbriqué. Pour conserver la structure imbriquée, envisagez d'utiliser une conversion de type pour mapper les champs à la structure d'origine.

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