kotlinx.serializationを利用したJSONサポート

Estimated reading time: 1 minute

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

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

This feature is defined in the class io.ktor.serialization.SerializationConverter in the artifact io.ktor:ktor-serialization:$ktor_version.
dependencies { implementation "io.ktor:ktor-serialization:$ktor_version" }
dependencies { implementation("io.ktor:ktor-serialization:$ktor_version") }
<project> ... <dependencies> <dependency> <groupId>io.ktor</groupId> <artifactId>ktor-serialization</artifactId> <version>${ktor.version}</version> <scope>compile</scope> </dependency> </dependencies> </project>

基本的な使い方

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

install(ContentNegotiation) {
    serialization()
}

設定

serialization()関数は2つのオプショナルのパラメータをデフォルト引数付きで持っています。

  • contentTypeは、どのcontent typeがハンドリングされるかを指定できます。ContentType.Application.Jsonがデフォルト値です。
  • jsonは、JSONフォーマッターを設定する機能を提供します。Json(DefaultJsonConfiguration)がデフォルト値です。

発展的な例:

install(ContentNegotiation) {
    serialization(
        contentType = ContentType.Application.Json,
        json = Json(
            DefaultJsonConfiguration.copy(
                prettyPrint = true
            )
        )
    )
}