Skip to content

Commit

Permalink
feat: customize JavaTimeModule of ObjectMapper (#1)
Browse files Browse the repository at this point in the history
  • Loading branch information
ibmisibm committed Mar 12, 2021
1 parent 874012d commit 3775efa
Showing 1 changed file with 16 additions and 1 deletion.
17 changes: 16 additions & 1 deletion src/main/kotlin/common/marvel/helper/global/Global.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,31 @@ import com.fasterxml.jackson.annotation.JsonInclude
import com.fasterxml.jackson.databind.DeserializationFeature
import com.fasterxml.jackson.databind.SerializationFeature
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer
import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer
import com.fasterxml.jackson.module.kotlin.KotlinModule
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
import java.time.LocalDate
import java.time.LocalDateTime
import java.time.LocalTime
import java.time.format.DateTimeFormatter

/**
* @author leo
*/
object Global {
private val javaTimeModule = JavaTimeModule()
.addSerializer(
LocalDateTime::class.java,
LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'"))
)
.addSerializer(LocalDate::class.java, LocalDateSerializer(DateTimeFormatter.ISO_DATE))
.addSerializer(LocalTime::class.java, LocalTimeSerializer(DateTimeFormatter.ISO_TIME))

val objectMapper = jacksonObjectMapper()
.registerModule(KotlinModule())
.registerModule(JavaTimeModule())
.registerModule(javaTimeModule)
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
.configure(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES, true)
.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
Expand Down

0 comments on commit 3775efa

Please sign in to comment.