JSON support using Jackson
The Jackson feature allows you to handle JSON content in your application easily usingthe jackson library.
This feature is a ContentNegotiation converter.
This feature is defined in the class io.ktor.jackson.JacksonConverter
in the artifact io.ktor:ktor-jackson:$ktor_version
.
dependencies { implementation "io.ktor:ktor-jackson:$ktor_version"}
dependencies { implementation("io.ktor:ktor-jackson:$ktor_version")}
<project> … <dependencies> <dependency> <groupId>io.ktor</groupId> <artifactId>ktor-jackson</artifactId> <version>${ktor.version}</version> <scope>compile</scope> </dependency> </dependencies></project>
Basic usage
To install the feature by registering a JSON content convertor using Jackson:
install(ContentNegotiation) {
jackson {
// Configure Jackson's ObjectMapper here
}
}
The jackson
block is a convenient method for:
register(ContentType.Application.Json, JacksonConverter(ObjectMapper().apply {
// ...
}.create()))
Configuration
Inside the jackson
block, you have access to the ObjectMapperused to install the ContentNegotiation. To give you an idea of what is available:
install(ContentNegotiation) {
jackson {
enable(SerializationFeature.INDENT_OUTPUT)
enable(...)
dateFormat = DateFormat.getDateInstance()
disableDefaultTyping()
convertValue(..., ...)
...
}
}