Jacksonを利用したJSONサポート

Estimated reading time: 1 minute

Jackson機能を使うと、JSONコンテンツをあなたのアプリケーション内でjacksonライブラリを使って簡単に扱うことができるようになります。

この機能はContentNegotiationコンバーターです。

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>

基本的な使い方

Jacksonを使ったJSONコンテンツコンバーターを登録することでこの機能をインストールします:

install(ContentNegotiation) {
    jackson {
        // Configure Jackson's ObjectMapper here
    }
}

jacksonブロックは以下の意味を持つ便利なメソッドです:

register(ContentType.Application.Json, JacksonConverter(ObjectMapper().apply {
    // ...
}.create()))

設定

jacksonブロック内で、ContentNegotiationをインストールするために使われたObjectMapperにアクセスできます。 以下を、何ができるのかの参考にしてください:

install(ContentNegotiation) {
    jackson {
        enable(SerializationFeature.INDENT_OUTPUT)
        enable(...)
        dateFormat = DateFormat.getDateInstance()
        disableDefaultTyping()
        convertValue(..., ...)
        ...
    }
}