Maison > développement back-end > Golang > Comment puis-je personnaliser le formatage de l'horodatage dans la sortie JSON de Go ?

Comment puis-je personnaliser le formatage de l'horodatage dans la sortie JSON de Go ?

DDD
Libérer: 2025-01-03 06:41:39
original
901 Les gens l'ont consulté

How Can I Customize Timestamp Formatting in Go's JSON Output?

Formatage des horodatages dans le JSON sortant avec des types personnalisés

Pour formater les horodatages lors de l'encodage JSON, vous pouvez créer un type personnalisé qui implémente l'interface Marshaler . Ce faisant, vous prenez le contrôle du processus de sérialisation, vous permettant de spécifier le format souhaité.

Implémentation de l'interface Marshaler

L'interface Marshaler nécessite une seule méthode, MarshalJSON, qui renvoie une tranche d'octets représentant les données codées en JSON et une erreur le cas échéant. Dans ce cas, vous définirez un type personnalisé qui enveloppe time.Time et implémente MarshalJSON.

Voici un exemple d'implémentation :

type JSONTime time.Time

func (t JSONTime)MarshalJSON() ([]byte, error) {
    // Format the timestamp in the desired format
    stamp := fmt.Sprintf("\"%s\"", time.Time(t).Format("Mon Jan _2"))
    return []byte(stamp), nil
}
Copier après la connexion

Mise à jour de la structure du document

Dans votre structure Document, remplacez time.Time par le type JSONTime personnalisé pour le Stamp field:

type Document struct {
    Name        string
    Content     string
    Stamp       JSONTime
    Author      string
}
Copier après la connexion

Initialisation du document

Lors de l'initialisation de l'instance du document, utilisez JSONTime(time.Now()) au lieu de time.Now():

testDoc := model.Document{"Meeting Notes", "These are some notes", JSONTime(time.Now()), "Bacon"}
Copier après la connexion

En suivant ces étapes, vous pouvez formater les horodatages dans vos réponses JSON en fonction de vos besoins. Vous pouvez étendre ce concept à d'autres types ou scénarios personnalisés selon vos besoins.

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