JSONをKotlinに変換
JSONをKotlin data classに変換してAndroid・Kotlin開発用に
JSON入力
Kotlin出力
JSONをKotlinとは?
AndroidアプリやKotlinバックエンドサービスを作っていて、JSON APIレスポンスを受け取ったとき、何かをデシリアライズする前に構造と一致するKotlin Data Classが必要です。特に深くネストされたオブジェクトを手書きで書くのは遅くて間違いやすいです。このツールはJSONからKotlin Data Classを自動生成します。サンプルレスポンスを貼り付ければ、数秒でkotlinx.serializationやGsonですぐに使えるモデルが手に入ります。
変換はブラウザで実行されます。設定でdata class名とパッケージを設定し、Data ClassとNullable Typesを有効にしてください。サーバーには送信されません。
使い方
JSONを貼り付けまたはアップロード
JSONを左のエディタに貼り付けるか、ファイルをアップロードしてください。サンプルで例データを読み込めます。設定でdata class名とパッケージを設定してください。
生成された型を確認
右パネルにKotlin data classが表示されます。ネストオブジェクトはネスト型に。配列はList<T>になります。無効なJSONの場合は先にJSONフォーマッターまたはJSONバリデーターを使用してください。
コピーまたはダウンロード
コピーまたはダウンロードでコードを取得してください。先にJSONをフォーマットするにはJSONフォーマッターを、検証にはJSONバリデーターを使用してください。
JSONをKotlinの例
JSONオブジェクトからKotlin data classを生成する例です。
例:加入者レコード
JSON入力:
生成されたKotlin出力:
JSONをKotlinが役立つ場面
AndroidアプリやKotlinバックエンドでREST APIを消費する際、型付きdata classが必要です。サンプルレスポンスを貼り付けるとRetrofit、Gson、kotlinx.serializationで使えるKotlinモデルが得られます。
よくある質問
Kotlin Data ClassはどのようにJSONと連携しますか?
Kotlin Data Classは自動生成されるequals、hashCode、toString、copyメソッドを持つ構造化データを保持します。Gsonやkotlinxのシリアライゼーションなどのライブラリは、クラスのプロパティを使ってJSONフィールドをマッピングします。ここでData Classを生成し、適切なアノテーションを追加して、Gson.fromJsonまたはJson.decodeFromStringでデシリアライズします。
KotlinでRetrofitを使ってJSONを解析するには?
RetrofitビルダーにGsonまたはkotlinxのシリアライゼーション変換ファクトリを追加し、Data Class戻り値型でAPIインターフェースを定義します。ここでAPIレスポンスからData Classを生成し、プロジェクトに貼り付ければRetrofitが自動的にデシリアライゼーションを処理します。
KotlinにおけるSerializedNameとSerialNameの違いは?
@SerializedNameはGson用でJSONキーをKotlinプロパティ名にマッピングします。@SerialNameはkotlinxのシリアライゼーションに相当します。使用するJSONライブラリに合ったものを使います。どちらもuser_nameのようなJSONキーをuserNameというKotlinプロパティにマッピングできます。
JSONデータはサーバーに送信されますか?
いいえ。Data Classの生成はブラウザ内で完全に実行されます。JSONがあなたのマシンを離れることはありません。
Kotlin Data ClassのNullable型は?
Nullable Typesを有効にするとString?、Int?などが生成されます。JSONフィールドが存在しないかnullになる可能性がある場合に便利です。Kotlinのnull安全性は、これらのケースの処理を忘れるとコンパイルエラーになります。
関連ツール
Kotlin JSONはkotlinx.serializationとGsonを参照。JSONはJSON仕様、RFC 8259を参照。