JSON to Kotlinデータクラス変換ツール
JSONを貼り付けて、シリアライゼーションアノテーションと完全なネスト型推論付きのKotlinデータクラスを生成します。
このツールについて
JSON to Kotlin変換ツールは、任意のJSON構造からKotlinデータクラスを 自動生成する無料のブラウザベースツールです。APIレスポンス、 設定ファイル、データベースレコード用のデータクラス定義を手動で 記述する代わりに、生のJSONを貼り付けるだけで、正確ですぐに使える Kotlinコードがミリ秒で得られます。
変換ツールはJSON構造全体にわたって再帰的な型推論を行います。
プリミティブ値は対応するKotlin型(String、Int、
Long、Double、Boolean)にマッピングされます。
ネストオブジェクトは独自の名前付きデータクラスとして抽出され、
フィールドキーからPascalCase変換で名前が生成されます。配列は
一貫した要素型を判定するために分析され、同種配列には
List<T>、混合コンテンツにはList<Any>が生成されます。
null値は?サフィックス付きのnullable型で適切に処理されます。
シリアライゼーションアノテーションモードを4つから選択できます。 kotlinx.serialization(Kotlin公式シリアライゼーションライブラリ)、 Gson(Androidで広く使用)、Moshi(Kotlin向けモダンJSONライブラリ)、 またはアノテーションなしです。アノテーションサポートを有効にすると、 snake_caseのJSONキーがイディオマティックなcamelCaseのKotlin プロパティ名に自動変換され、元のキーマッピングを保持する 適切なアノテーションが付加されます。
すべての処理はブラウザ内で完結します。JSONデータがマシンの外に 出ることはなく、サーバーへの通信、ログ記録、サードパーティの 分析も一切ありません。内部APIレスポンス、認証トークン、 シークレットを含む設定ファイルなどの機密ペイロードでも安全に 使用できます。
追加オプションでプロジェクトのコーディング規約に合わせて出力を
カスタマイズできます。valとvarプロパティの切り替え、
全フィールドのnullable型有効化、ルートクラス名の設定、
ドキュメントやテスト用のサンプルJSON文字列付きcompanion object
の生成が可能です。生成されたコードには必要なimport文がすべて
含まれているため、Kotlinプロジェクトに直接貼り付けられます。
使い方
- 左側の JSON Input パネルにJSONを貼り付けまたは入力します。
- 右パネルにKotlin出力が入力に応じて自動更新されます。
- Root class name フィールドでトップレベルのデータクラス名をカスタマイズします(デフォルトは "Root")。
- ドロップダウンからシリアライゼーションライブラリを選択して適切なアノテーションを追加します(kotlinx.serialization、Gson、Moshi、またはNone)。
- トグルボタンで nullable型の有効化、val/varの切り替え、サンプルJSON付きcompanion objectの生成を行います。
- Copy をクリックするか Ctrl+Shift+C で生成された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構造の素早い参照を提供するのに便利です。