2016-09-27 146 views
2

我必須通過API向服務器發送Date對象(其實,Date是服務器期望的對象)。我想使用Moshi,但我無法弄清楚如何使用自定義適配器來實現它。任何人?如何通過Moshi JSON序列化程序發送Date對象?

+1

'Date'不是在JSON中指定的東西。所以你的服務器不能期待Date對象。它期望Date的某種表示形式,不管是具有特定格式的字符串,還是時間戳記或複雜的結構。您首先需要確定您應該發送的格式。 – njzk2

+0

我應該發送JSON –

+0

但'Date'在'JSON'的上下文中沒有意義。所以這沒有意義。你必須弄清楚你的服務器期望的格式。 – njzk2

回答

2

添加依賴於莫希的適配器包:

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

然後在你Moshi實例上安裝Rfc3339DateJsonAdapter

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

它會給你日期爲RFC 3339格式的JSON字符串,像這樣:"2017-05-06T20:00:00-05:00"