yurik
11/23/2018, 12:13 PM@RFC3339Date
@Json(name = "expiration_date")
val expirationDate: Date
...
@Target(AnnotationTarget.FIELD)
annotation class RFC3339Date
val rfc3339DateConverter = object : Converter {
override fun canConvert(cls: Class<*>) = cls == Date::class.java
override fun fromJson(jv: JsonValue) =
if (jv.string != null) {
try {
// here will be some rfc3339-compatible conversion from jv.string to Date
} catch (e: DateTimeParseException) {
throw KlaxonException("Couldn't parse RFC3339 date: ${jv.string}")
}
} else {
throw KlaxonException("Couldn't parse RFC3339 date: ${jv.string}")
}
override fun toJson(o: Any) = "$o"
}
...
Klaxon().fieldConverter(RFC3339Date::class, rfc3339DateConverter)...