json unmarshal temps qui n'est pas dans la RFC 3339 format
Quel est le moyen le plus approprié pour gérer la désérialisation de différents formats d'heure en Aller? L'encodage/json paquet semble être entièrement rigide en seulement accepté RFC 3339. Je peux désérialiser dans une chaîne de transformation que dans la RFC 3339 et puis unmarshal, mais je n'ai pas vraiment envie de le faire. Toutes les meilleures solutions?
Vous devez vous connecter pour publier un commentaire.
Vous aurez à mettre en œuvre la
json.Marshaleur
/json.Unmarshaler
interfaces sur un type personnalisé et l'utiliser à la place, un exemple:modifier: ajout
CustomTime.IsSet()
pour vérifier cela a été fait ou non, pour référence future.return []byte(strconv.Quote(ct.Time.Format(ctLayout))), nil
(enveloppé dansstrconv.Quote
)func (ct CustomTime) MarshalJSON()
Vous devriez être en train de passerct
pas de pointeur.L'encodage/décodage se fait par
temps.Temps
lui-même, dans leMarshalJSON
etUnamrshalJSON
méthodes. Vous pouvez créer votre propretime.Time
type et de remplacer ces fonctions pour travailler avec le json toutefois vous le souhaitez.