Android 如何通过Moshi JSON序列化程序发送日期对象?
我必须通过API向服务器发送Android 如何通过Moshi JSON序列化程序发送日期对象?,android,moshi,Android,Moshi,我必须通过API向服务器发送Date对象(实际上,Date是服务器期望的对象)。我想使用Moshi,但我不知道如何使用自定义适配器来实现。有人吗?在moshi adapters软件包上添加依赖项: <dependency> <groupId>com.squareup.moshi</groupId> <artifactId>moshi-adapters</artifactId> <version>1.4.0<
Date
对象(实际上,Date
是服务器期望的对象)。我想使用Moshi,但我不知道如何使用自定义适配器来实现。有人吗?在moshi adapters软件包上添加依赖项:
<dependency>
<groupId>com.squareup.moshi</groupId>
<artifactId>moshi-adapters</artifactId>
<version>1.4.0</version>
</dependency>
它将以RFC 3339格式的JSON字符串形式为您提供日期,如下所示:
“2017-05-06T20:00:00-05:00”
Date
不是JSON中指定的内容。因此,您的服务器不能期望有日期对象。它需要日期的特定表示,可以是具有特定格式的字符串、时间戳或复杂结构。首先,您需要确定应该发送什么格式。我应该发送JSON,但是Date
在JSON
的上下文中没有任何意义。所以这是没有道理的。你必须弄清楚你的服务器需要什么格式。知道如何将这个moshi实例添加到改造中吗?如果日期不是Rfc3339格式怎么办?如果它看起来像2018-05-12T13:19:00Z
(ISO8601?)RFC3339也支持以Z结尾的日期,该怎么办。它被记录为ISO8601的概要文件。@PrashanD将moshi添加到改装(kotlin):Reformation.Builder().addConverterFactory(MoshiConverterFactory.create(moshi.Builder().add(Date::class.java,Rfc3339DateJsonAdapter()).add(KotlinxOnAdapterFactory()).build())
gradle依赖项:implementation'com.squareup.reformation2:converter-moshi:2.4.0'implementation'com.squareup.moshi:moshi适配器:1.10.0'implementation'com.squareup.moshi:moshi-kotlin:1.9.1'
Moshi moshi = new Moshi.Builder()
.add(Date.class, new Rfc3339DateJsonAdapter())
.build();