2016-09-27 1 views
2

Je dois envoyer Date objet au serveur via l'API (en fait, Date est l'objet attendu par le serveur). Je veux utiliser Moshi, mais je n'arrive pas à comprendre comment utiliser Custom Adapter pour y arriver. N'importe qui?Comment envoyer un objet Date via le sérialiseur Moshi JSON?

+1

'Date' n'est pas quelque chose qui est spécifié dans JSON. Votre serveur ne peut donc pas attendre un objet Date. Il attend une certaine représentation d'une date, que ce soit une chaîne avec un certain format, ou un horodatage, ou une structure complexe. Vous devez d'abord déterminer le format que vous êtes censé envoyer. – njzk2

+0

Je suis censé envoyer JSON –

+0

mais 'Date' n'a aucune signification dans le contexte de' JSON'. Cela n'a donc aucun sens. Vous devez déterminer quel format attend votre serveur. – njzk2

Répondre

2

Ajouter une dépendance sur le paquet adaptateurs Moshi-:

<dependency> 
    <groupId>com.squareup.moshi</groupId> 
    <artifactId>moshi-adapters</artifactId> 
    <version>1.4.0</version> 
</dependency> 

Installez ensuite le Rfc3339DateJsonAdapter dans votre Moshi exemple:

Moshi moshi = new Moshi.Builder() 
    .add(Date.class, new Rfc3339DateJsonAdapter()) 
    .build(); 

Il va vous donner les dates comme des chaînes JSON au format RFC 3339 , comme ceci: "2017-05-06T20:00:00-05:00".