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