我有从本地领域数据库检索的JSON数据。我正在尝试将其转换为相应的数据类。我有一个ISO日期字段
{
....
"createdAt" : "2022-05-04T10:16:56.489Z"
....
}
字符串
我想做的是将这个字符串日期字段转换为kotlinx-datetime
的Instant
对象,它是一个可序列化的类。因此,我将数据类设置为
import kotlinx.datetime.Instant
data class PollPinComment(
...
val createdAt: Instant? = null,
...
)
型
这不起作用,并给出如下错误
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 288 path $[0].createdAt
型
我确信我可能需要用gson编写一些序列化/反序列化逻辑来将这个字符串转换为Instant
对象。所以我的问题是我怎么能做到这一点?先谢了
2条答案
按热度按时间v8wbuo2f1#
您可以为此创建一个自定义
Deserializer
,并将其注册为type adapter
到Gson
对象。字符串
创建
Gson()
对象帕辛deserializer
作为type adapter
型
如果您使用
Retrofit
在
Retrofit
构建器中,将此传递给GsonConverterFactory
型
xv8emn3q2#
GSON只解析基本数据类型,如Int、String、double...需要解析的其他类也必须由这些基本数据类型组成。可以这样做:
字符串