0Pricing
Kotlin Academy · レッスン

kotlinx.serializationのセットアップ

プラグインを追加します

「kotlinx.serializationのセットアップ」はCoddyKit上の無料Kotlin Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはKotlin Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Kotlin Academyコースには全4レッスンが含まれています。

kotlinx.serializationとは

kotlinx.serialization は、オブジェクトをJSONなどの形式に変換したり、形式からオブジェクトに戻したりするためのKotlin公式ライブラリです。

  • 純粋なKotlinで、マルチプラットフォームに対応
  • コンパイル時のコード生成(リフレクション不要)
  • JetBrainsが保守

コンパイラープラグインとランタイムライブラリを組み合わせて使用します。

コンパイラープラグインを使う理由

リフレクションベースのライブラリとは異なり、kotlinx.serializationはコンパイル時にシリアライザーを生成します。

  • 高速で、実行時のリフレクションコストがない
  • リフレクションが制限されるKotlin/NativeやJSでも動作する
  • 型安全で、コンパイラーによって検証される

そのため、依存関係を追加するだけでなく、kotlin-serializationプラグインを適用する必要があります。

プラグインを適用する(Kotlin DSL)

build.gradle.kts で、Kotlinプラグインと同じバージョンのシリアライゼーションプラグインを適用します。

plugins {
    kotlin("jvm") version "2.0.0"
    kotlin("plugin.serialization") version "2.0.0"
}

ランタイム依存関係を追加する

プラグインはコードを生成しますが、JSONランタイムライブラリも必要です。

dependencies {
    implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.1")
}

バージョンの整合性が重要

plugin.serialization のバージョンは、Kotlinコンパイラーのバージョンと一致していなければなりません。ランタイムライブラリには独立したバージョンがあります。

  • プラグインのバージョン = Kotlinのバージョン(例:2.0.0)
  • ランタイムのバージョンは別(例:1.7.1)

プラグインとKotlinのバージョンが一致していないと、原因の分かりにくいビルドエラーが発生します。

その他の形式

JSONが最も一般的ですが、kotlinx.serializationは追加のアーティファクトによって、さらに多くの形式をサポートしています:

  • kotlinx-serialization-json — JSON
  • kotlinx-serialization-cbor — CBORバイナリ
  • kotlinx-serialization-protobuf — Protocol Buffers

必要な形式のアーティファクトだけを追加します。

Groovy DSLでの書き方

Kotlin DSLではなくGroovyの build.gradle を使用するプロジェクトでは、設定は次のようになります。

// build.gradle (Groovy)
plugins {
    id 'org.jetbrains.kotlin.jvm' version '2.0.0'
    id 'org.jetbrains.kotlin.plugin.serialization' version '2.0.0'
}

dependencies {
    implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.1'
}

Jsonのエントリポイント

設定が完了したら、kotlinx.serialization.json の Json オブジェクトを、エンコードとデコードの主なエントリポイントとして使用します。

import kotlinx.serialization.json.Json

val format = Json
// format.encodeToString(...) / format.decodeFromString(...)

最小限の動作例

プラグインとランタイムを設定した後に使える、最小限のエンドツーエンドの例を示します。

import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json

@Serializable
data class City(val name: String, val population: Int)

fun main() {
    val city = City("Istanbul", 15000000)
    val json = Json.encodeToString(city)
    println(json)
}

マルチプラットフォームの設定

Kotlin Multiplatformプロジェクトでは、すべてのターゲットで共有できるように、ランタイムを commonMain に追加します。

sourceSets {
    val commonMain by getting {
        dependencies {
            implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.1")
        }
    }
}

よくある設定ミス

次のよくある問題に注意してください:

  • プラグインを忘れる — Serializer has not been found が発生する
  • プラグインのバージョンがKotlinのバージョンと一致していない
  • ランタイムは追加したがプラグインを追加していない(またはその逆)
  • encodeToString のインポートがない

理解度チェック

kotlinx.serializationにGradleコンパイラープラグインが必要なのはなぜですか?

まとめ

次の手順でkotlinx.serializationを設定しました:

  • Kotlinのバージョンに合わせて kotlin("plugin.serialization") プラグインを適用する
  • kotlinx-serialization-json ランタイム依存関係を追加する
  • Json オブジェクトをエントリポイントとして使用する

次は、モデルクラスに @Serializable を付けます。

よくある質問

「kotlinx.serializationのセットアップ」レッスンは無料ですか?

はい。「kotlinx.serializationのセットアップ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Kotlin Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Kotlin Academyコースには全4レッスンが含まれています。

「kotlinx.serializationのセットアップ」で何を学びますか?

プラグインを追加します ブラウザで直接実行するハンズオンコードでKotlin Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Kotlin Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのKotlin Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「kotlinx.serializationのセットアップ」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このKotlin Academyレッスンでコードを書いて実行できますか?

はい。すべてのKotlin Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. kotlinx.serializationのセットアップ
  2. Serializableクラス
  3. JSONのエンコードとデコード
  4. カスタムシリアライザー
← Kotlin Academyに戻る