Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何通过Moshi JSON序列化程序发送日期对象?_Android_Moshi - Fatal编程技术网

Android 如何通过Moshi JSON序列化程序发送日期对象?

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<

我必须通过API向服务器发送
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();