JSON to Kotlinデータクラス変換ツール

JSONを貼り付けて、シリアライゼーションアノテーションと完全なネスト型推論付きのKotlinデータクラスを生成します。

このツールについて

JSON to Kotlin変換ツールは、任意のJSON構造からKotlinデータクラスを 自動生成する無料のブラウザベースツールです。APIレスポンス、 設定ファイル、データベースレコード用のデータクラス定義を手動で 記述する代わりに、生のJSONを貼り付けるだけで、正確ですぐに使える Kotlinコードがミリ秒で得られます。

変換ツールはJSON構造全体にわたって再帰的な型推論を行います。 プリミティブ値は対応するKotlin型(StringIntLongDoubleBoolean)にマッピングされます。 ネストオブジェクトは独自の名前付きデータクラスとして抽出され、 フィールドキーからPascalCase変換で名前が生成されます。配列は 一貫した要素型を判定するために分析され、同種配列には List<T>、混合コンテンツにはList<Any>が生成されます。 null値は?サフィックス付きのnullable型で適切に処理されます。

シリアライゼーションアノテーションモードを4つから選択できます。 kotlinx.serialization(Kotlin公式シリアライゼーションライブラリ)、 Gson(Androidで広く使用)、Moshi(Kotlin向けモダンJSONライブラリ)、 またはアノテーションなしです。アノテーションサポートを有効にすると、 snake_caseのJSONキーがイディオマティックなcamelCaseのKotlin プロパティ名に自動変換され、元のキーマッピングを保持する 適切なアノテーションが付加されます。

すべての処理はブラウザ内で完結します。JSONデータがマシンの外に 出ることはなく、サーバーへの通信、ログ記録、サードパーティの 分析も一切ありません。内部APIレスポンス、認証トークン、 シークレットを含む設定ファイルなどの機密ペイロードでも安全に 使用できます。

追加オプションでプロジェクトのコーディング規約に合わせて出力を カスタマイズできます。valvarプロパティの切り替え、 全フィールドのnullable型有効化、ルートクラス名の設定、 ドキュメントやテスト用のサンプルJSON文字列付きcompanion object の生成が可能です。生成されたコードには必要なimport文がすべて 含まれているため、Kotlinプロジェクトに直接貼り付けられます。

使い方

  1. 左側の JSON Input パネルにJSONを貼り付けまたは入力します。
  2. 右パネルにKotlin出力が入力に応じて自動更新されます。
  3. Root class name フィールドでトップレベルのデータクラス名をカスタマイズします(デフォルトは "Root")。
  4. ドロップダウンからシリアライゼーションライブラリを選択して適切なアノテーションを追加します(kotlinx.serialization、Gson、Moshi、またはNone)。
  5. トグルボタンで nullable型の有効化、val/varの切り替え、サンプルJSON付きcompanion objectの生成を行います。
  6. Copy をクリックするか Ctrl+Shift+C で生成されたKotlinコードをクリップボードにコピーします。

JSON to Kotlinの人気サンプル

すべてのJSON to Kotlinサンプルを見る →

よくある質問

ネストJSONオブジェクトはどのように処理されますか?

各ネストJSONオブジェクトは独自のKotlinデータクラスとして抽出されます。クラス名はフィールドキーからPascalCase変換で生成されます。例えば、"shipping_address"フィールドはShippingAddressデータクラスを生成します。名前の衝突が発生する場合、数値サフィックスが自動追加されます(Item、Item2、Item3など)。

どのシリアライゼーションライブラリを選ぶべきですか?

kotlinx.serializationはKotlin公式のシリアライゼーションライブラリで、Kotlin Multiplatformプロジェクトに適しています。GsonはJava相互運用を使用するAndroidプロジェクトで人気の選択肢です。MoshiはGsonよりもKotlinの機能(null安全性など)をより適切に処理するモダンな代替ライブラリです。シリアライゼーションアノテーションが不要な場合は「None」を選択してください。

snake_caseのJSONキーはどのように処理されますか?

snake_caseで書かれたJSONキーは、Kotlinのイディオマティックな規約であるcamelCaseプロパティ名に自動変換されます。元のJSONキー名へのマッピングを保持するために、@SerialName、@SerializedName、または@Jsonアノテーションが追加されます。

混合型の配列はどうなりますか?

配列に異なる型の要素が含まれる場合、混合コンテンツを安全に表現するためにList<Any>が生成されます。すべての要素が同じ型の場合は、強く型付けされたList<T>が生成されます。空の配列はList<Any>にデフォルト設定されます。

データは安全ですか?

はい。すべてのコード生成はJavaScriptを使用してブラウザ内で完全に実行されます。サーバーへのデータ送信は一切ありません。ブラウザの開発者ツールのネットワークタブで確認できます。

valとvarの違いは何ですか?

Kotlinでは、valはイミュータブル(読み取り専用)プロパティを宣言し、varはミュータブルプロパティを宣言します。不変性を促進しより安全なコードを実現するため、valの使用が推奨デフォルトです。構築後にプロパティを変更する必要がある場合はvarを使用します。

companion objectトグルはどのように動作しますか?

有効にすると、ルートデータクラスにサンプルJSON文字列定数を含むcompanion objectが含まれます。ドキュメント、テスト、またはデータクラス定義と一緒に期待されるJSON構造の素早い参照を提供するのに便利です。

関連ツール