シンプルなJSONをKotlin Data Classに変換する

フラットなJSONオブジェクトをvalプロパティを持つKotlin data classに変換する方法を学びます。String、Int、Double、Boolean型のマッピングを解説します。

Basic Data Classes

詳細な説明

JSONからKotlin Data Classへ

最もシンプルなJSON-to-Kotlin変換は、フラットなJSONオブジェクトをdata classにマッピングすることです。各JSONキーは推論されたKotlin型を持つvalプロパティになります。

JSONの例

{
  "id": 42,
  "name": "Alice",
  "email": "alice@example.com",
  "active": true,
  "score": 98.5
}

生成されるKotlin

data class User(
    val id: Int,
    val name: String,
    val email: String,
    val active: Boolean,
    val score: Double
)

型マッピングルール

JSON型 Kotlin型
文字列 String
整数 Int(大きな値はLong
小数 Double
真偽値 Boolean
null String?(nullable)

なぜData Classなのか?

Kotlinのdata classequals()hashCode()toString()copy()、分解宣言を自動生成します。値ベースの比較と簡単なコピーが標準で利用できるため、JSONデータの保持に最適です。

Kotlinx.serializationでのデシリアライゼーション

@Serializable
data class User(
    val id: Int,
    val name: String,
    val email: String,
    val active: Boolean,
    val score: Double
)

val user = Json.decodeFromString<User>(jsonString)

Gsonでのデシリアライゼーション

val user = Gson().fromJson(jsonString, User::class.java)

これがすべてのJSON-to-Kotlin変換の基礎です。ネストされたオブジェクト、nullable フィールド、コレクションに進む前に、この基本的なマッピングを理解することが不可欠です。

ユースケース

REST APIを利用するAndroidアプリやKotlinバックエンドサービスを構築する際、ユーザープロファイルや設定、ステータスレスポンスなどのシンプルなJSONペイロードを頻繁に受け取ります。data classに変換することで型安全性とIDEの自動補完が得られます。

試してみる — JSON to Kotlin

フルツールを開く