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

GO : importez une structure et renommez-la en json

王林
王林avant
2024-02-09 10:36:18517parcourir

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"`
}

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,
}

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

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

type Report struct {
   GormModel
   CreatedBy          User     `gorm:"foreignKey:CreatedByUserID" json:"createdBy"`
   Archived           bool     `json:"archived"`
}

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer