シンプルな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 classはequals()、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の自動補完が得られます。