Rénovation GSON sérialiser Date de chaîne json en java.util.date
Je suis l'aide de la Rénovation de la bibliothèque pour mes appels de REPOS. La plupart de ce que j'ai fait a été lisse comme du beurre, mais pour une raison que je vais avoir des problèmes de conversion JSON timestamp les chaînes en java.util.Date
objets. Le JSON qui est à venir dans cette apparence.
{
"date": "2013-07-16",
"created_at": "2013-07-16T22:52:36Z",
}
Comment puis-je savoir de Rénovation ou de Gson pour convertir ces chaînes dans java.util.Date objects
?
- Ressemble à une copie de cette question.
- ce n'est pas le même puisqu'il y a deux différents formats de date ici. Donc il nécessite une approche différente.
Vous devez vous connecter pour publier un commentaire.
Ou la Kotlin équivalent:
Vous pouvez définir vos propres Gson analyseur de rénovation. Plus ici: Rénovation Du Site Web
Regarder Ondreju de réponse pour voir comment mettre en rénovation 2.
ServiceGenerator
?2016-02-11T13:42:14.401Z
obtient désérialiser un objet date, qui est pour13:42:14
dans mes paramètres régionaux.@gderaco la réponse de mise à jour pour la rénovation 2.0:
Voici comment j'ai fait:
Créer de la classe DateTime report de la Date, puis d'écrire un personnalisé deserializer:
Maintenant, pour la deserializer partie où nous enregistrer à la fois la Date et DateTime convertisseurs:
Et lorsque vous créez votre RestAdapter, procédez de la manière suivante:
Votre truc devrait ressembler à ceci:
return df.parse(json.getAsString());
àlong timeStamp = Long.parseLong(json.getAsString()); return new java.util.Date(timeStamp);
Gson peut gérer qu'un format datetime (ceux spécifiés dans le constructeur), en plus du iso8601 si l'analyse avec le format personnalisé est pas possible. Donc, une solution pourrait être d'écrire votre propre deserializer. Pour résoudre votre problème, j'ai défini:
avec cette deserializer:
Dernière étape consiste à créer un
Gson
exemple avec le bouton droit de la carte:Mon résultat:
Littéralement si vous avez déjà un objet Date avec le nom "created_at" dans la classe que vous créez alors c'est simple:
Et vous avez terminé. pas compliqué primordial nécessaires.
Vous pouvez définir deux nouvelles classes comme ceci:
et
Votre POJO sera comme ceci:
Enfin ensemble personnalisé de votre deserializer:
et