Personnalisé JodaTime sérialiseur à l'aide de Play Framework librairie JSON?
Comment puis-je mettre en œuvre une coutume JodaTime de DateTime sérialiseur/deserializer JSON? Je suis enclin à utiliser le Play Framework librairie JSON (2.1.1). Il y a un défaut DateTime sérialiseur, mais il utilise dt.getMillis
au lieu de .toString
qui permettrait le retour d'une conforme aux normes ISO Chaîne.
L'écriture se Lit[T] amd Écrit[T] pour le cas des classes semble assez simple, mais je ne peux pas comprendre comment faire la même chose pour le type DateTime.
Vous devez vous connecter pour publier un commentaire.
- Je utiliser Jouer 2.3.7 et de définir par la compagne de l'objet implicite des lectures/écritures avec le patron de la chaîne:
Json.fromJson[User](value)
au lieu deJson.fromJson(value)
. Plus de détails, voir dans répondre à votre post."yyyy-MM-dd'T'HH:mm:ssZ"
au lieu de"yyyy-MM-dd'T'HH:mm:ss'Z'"
?"yyyy-MM-dd'T'HH:mm:ss'Z'"
.Si vous regardez la source,
Reads.jodaDateReads
déjà gère à la fois des nombres et des chaînes à l'aide deDateTimeFormatter.forPattern
. Si vous souhaitez gérer ISO8601 chaîne, il suffit de remplacer avecISODateTimeFormat
:(simplifier comme vous le souhaitez, par exemple, supprimer un numéro de manipulation)
df
n'a pas de sens là, en fait. Je l'ai corrigé.Un autre, peut-être plus simple solution serait de faire une carte, par exemple:
Mise à JOUR
Si vous aviez un besoin récurrent pour cette conversion, vous pouvez créer votre propre conversion implicite, il est à seulement quelques lignes de code: