KotlinのAPIレスポンスをモデルクラスにマッピングする方法を徹底解説!初心者でも安心の入門ガイド
生徒
「Kotlinでインターネットからデータを取ってくるAPIってよく聞くけど、それをどうやって使いやすい形に変えるの?」
先生
「APIから送られてくるデータはJSONという形式で来ることが多いんだけど、それをKotlinのモデルクラスにマッピングすると扱いやすくなるんだ。」
生徒
「モデルクラスって何ですか?」
先生
「簡単に言うと、データを入れるための型付きの箱みたいなものだよ。じゃあ実際にどんな風に使うのか、ゆっくり説明していくね。」
1. APIレスポンスとモデルクラスとは?
Kotlin(ことりん)でAPI(エーピーアイ)と連携するとき、サーバーから受け取るデータはほとんどの場合「JSON(ジェイソン)」形式で送られてきます。これは見た目がちょっとコードに似たテキストの形式です。
例えば、以下のようなJSONがあります:
{
"name": "Taro",
"age": 25
}
このJSONの内容をKotlinで使いやすくするために、「モデルクラス」を作って、そこに自動的にデータを入れてくれる仕組みを使います。これを「マッピング」と呼びます。
2. モデルクラスを作ってみよう
Kotlinでモデルクラスを作るときは、「data class(データクラス)」という便利な仕組みを使います。
先ほどのJSONに対応するモデルクラスは、次のようになります:
data class User(
val name: String,
val age: Int
)
このUserクラスは、nameが文字列(String)、ageが整数(Int)になっています。JSONのキーと一致するようにプロパティの名前をつけることが重要です。
3. JSONをモデルクラスに変換するには?
Kotlinでは、JSONをモデルクラスに変換(パース)するために「ライブラリ」という道具を使います。代表的なものにGsonやMoshiなどがあります。ここでは、Googleが作ったGsonを使って説明します。
まず、Gsonライブラリをプロジェクトに追加します。Gradleファイルに次のように書きます:
dependencies {
implementation("com.google.code.gson:gson:2.10.1")
}
次に、実際にJSON文字列をUserクラスに変換してみましょう。
import com.google.gson.Gson
fun main() {
val json = """{ "name": "Taro", "age": 25 }"""
val gson = Gson()
val user = gson.fromJson(json, User::class.java)
println("名前: ${user.name}, 年齢: ${user.age}")
}
このコードでは、fromJsonという関数を使ってJSONをUserクラスに変換しています。
4. 出力結果を確認しよう
上記のコードを実行すると、次のように出力されます。
名前: Taro, 年齢: 25
このように、サーバーから送られてきたJSON形式のデータが、Kotlinのモデルクラスに自動で変換されて使いやすくなります。
5. モデルクラスの注意点と豆知識
モデルクラスのプロパティ名は、JSONのキーと完全に一致していないと正しくマッピングできません。たとえばJSONが"user_name"なのにモデルクラスがuserNameだとエラーになることがあります。
そんなときは、Gsonのアノテーション(特別な指定)を使って対応します:
import com.google.gson.annotations.SerializedName
data class User(
@SerializedName("user_name") val userName: String,
val age: Int
)
@SerializedNameを使えば、JSONの名前とKotlinのプロパティ名が違っていてもちゃんとマッピングできます。
6. KotlinでAPIを扱うメリットとは?
KotlinでAPIを使ってサーバーと通信し、そのレスポンスをモデルクラスにマッピングすることで、データの取り扱いが非常に簡単になります。
手作業で1つ1つデータを取り出す必要がなくなり、プログラムの読みやすさや安全性もアップします。
実際のAndroidアプリやWebシステムでも、この方法は非常によく使われています。
Kotlinを基礎からしっかり学びたい人や、 Java経験を活かしてモダンな言語にステップアップしたい人には、 定番の入門書がこちらです。
基礎からわかるKotlinをAmazonで見る※ Amazon広告リンク
7. もっと実践的な使い方は?
今回の例は簡単なものでしたが、実際には「配列(リスト)」や「入れ子のJSON(ネスト)」などもよく出てきます。そういった場合でも、モデルクラスを工夫することで、複雑なデータ構造を扱えるようになります。
例えば、複数のユーザーを受け取る場合はこうです:
[
{ "name": "Taro", "age": 25 },
{ "name": "Hanako", "age": 30 }
]
この場合は、List<User>の形で受け取ればOKです。
val json = """[{"name":"Taro","age":25},{"name":"Hanako","age":30}]"""
val users: List<User> = gson.fromJson(json, Array<User>::class.java).toList()
【未経験OK】Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験する60分
「プログラミングを始めたい」を形にする。最新言語Kotlinで楽しむ、ものづくりの第一歩。
本講座は、プログラミング経験が全くない方のためのエントリー講座です。「コードを書くってどういうこと?」という基本から、世界中で使われている最新言語Kotlin(コトリン)を使って、実際にプログラムを動かすまでを体験します。難しい理屈よりも、まずは「自分の手で動かす楽しさ」を最短距離で実感していただきます。
具体的な体験内容と環境
【つくるもの】
簡単な言葉を入力すると自動で返答してくれる「対話型ミニプログラム」や、計算を自動化する「便利ツール」をゼロから作成します。黒い画面に自分の書いた文字が表示される瞬間は、最高の感動体験です。
【開発環境】
プロのエンジニアが実際に使っている開発ツールIntelliJ IDEA(インテリジェイ)をインストールします。ボタン一つで日本語化し、初心者でも迷わず操作できる「魔法の設定」を一緒に行います。
この60分で得られる3つの体験
プロと同じ道具を揃えることで、明日から一人でもプログラミングを続けられる環境が整います。
「変数」や「型」といった難しい言葉も、身近な例え話で解説。モヤモヤをゼロにします。
Kotlinは英語に近くて読みやすいのが特徴。自分でコードを読んで、間違いを見つけるコツも伝授します。
※本講座は、パソコン操作が不安な方でも安心して受講いただける完全マンツーマンです。あなたのペースに合わせて、一つずつ丁寧に進めていきます。
Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験