Maison > développement back-end > Golang > GO : importez une structure et renommez-la en json

GO : importez une structure et renommez-la en json

王林
Libérer: 2024-02-09 10:36:18
avant
572 Les gens l'ont consulté

GO:导入一个结构并在 json 中重命名它

l'éditeur php Yuzai vous présente une méthode pour importer une structure en JSON et la renommer, c'est-à-dire en utilisant le mot-clé "GO". En JSON, nous devons souvent utiliser une structure définie, mais nous devons parfois la renommer pour répondre à des besoins spécifiques. Grâce au mot-clé « GO », nous pouvons renommer la structure lors de son importation pour mieux répondre à nos besoins. Cette méthode est simple et facile à utiliser, nous permettant de traiter les données JSON de manière plus flexible. Voyons ensuite les étapes spécifiques !

Contenu de la question

J'ai créé une base de données en utilisant gorm. Pour ce faire, j'ai créé une structure et créé une table en utilisant cette structure. Jusqu'ici, tout va bien. Sur le backend, tout fonctionne bien, mais sur le frontend, le problème est que l'appel json renvoie toujours un identifiant en majuscule, tandis que swagger génère un identifiant en minuscule. Existe-t-il un moyen de remplacer une structure importée de gorm à l'aide d'un identifiant json ?

import "gorm.io/gorm"

type report struct {
   gorm.model
   createdby          user     `gorm:"foreignkey:createdbyuserid" json:"createdby"`
   archived           bool     `json:"archived"`
}
Copier après la connexion

Cette structure me donne la réponse suivante

{
    "ID": 8,
    "CreatedAt": "2022-11-15T20:45:16.83+01:00",
    "UpdatedAt": "2022-12-27T21:34:17.871+01:00",
    "DeletedAt": null
    "createdBy": {
        "ID": 1,
        "CreatedAt": "2022-11-15T20:02:17.497+01:00",
        "UpdatedAt": "2022-11-15T20:02:17.497+01:00",
        ...
    },
    "archived": true,
}
Copier après la connexion

Existe-t-il un moyen de mettre l'identifiant en minuscule (comme archived) ? Ou je pourrais l'ajuster dans swaggo pour qu'il soit généré en majuscules.

Ce que je vois, c'est que vous pouvez créer le tableau sans cela gorm.model et définir vous-même toutes les propriétés. Le problème est que je dois créer moi-même toutes les fonctionnalités de ces colonnes (suppression, mise à jour, index, clé primaire...).

Solution de contournement

Je crée ma propre structure gorm-model-struct :

type gormmodel struct {
    id        uint           `gorm:"primarykey" json:"id"`
    createdat time.time      `json:"createdat"`
    updatedat time.time      `json:"updatedat"`
    deletedat gorm.deletedat `gorm:"index" json:"deletedat"`
} //@name models.gormmodel
Copier après la connexion

J'ai importé cette structure dans d'autres structures :

type Report struct {
   GormModel
   CreatedBy          User     `gorm:"foreignKey:CreatedByUserID" json:"createdBy"`
   Archived           bool     `json:"archived"`
}
Copier après la connexion

Il est important d'ajouter json-key et de définir le nom de la propriété.

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:stackoverflow.com
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