一尘不染

改装GSON将json字符串中的Date序列化为java.util.date

json

我正在对我的REST调用使用Retrofit库。我所做的大部分工作都像黄油一样顺利,但是由于某些原因,我在将JSON时间戳字符串转换为java.util.Date对象时遇到了问题。传入的JSON看起来像这样。

{
    "date": "2013-07-16",
    "created_at": "2013-07-16T22:52:36Z",
}

如何告诉Retrofit或Gson将这些字符串转换成java.util.Date objects


阅读 482

收藏
2020-07-27

共1个答案

一尘不染

Gson gson = new GsonBuilder()
    .setDateFormat("yyyy-MM-dd'T'HH:mm:ss")
    .create();

RestAdapter restAdapter = new RestAdapter.Builder()
    .setEndpoint(API_BASE_URL)
    .setConverter(new GsonConverter.create(gson))
    .build();

或等效的Kotlin:

val gson = GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss").create()
RestAdapter restAdapter = Retrofit.Builder()
    .baseUrl(API_BASE_URL)
    .addConverterFactory(GsonConverterFactory.create(gson))
    .build()
    .create(T::class.java)

您可以将自定义的Gson解析器设置为可改型。更多内容:改造网站

查看Ondreju的响应,以了解如何在改造2中实施此操作。

2020-07-27