JSON から Kotlin
JSON から kotlinx.serialization、Gson、Moshi、Jackson 向けの Kotlin data class を生成
JSON を貼り付けるか例を読み込むと、Kotlin のコードを生成します。
JSON から Kotlin が生成するもの
JSON から Kotlin は API レスポンスや任意の JSON サンプルを、kotlinx.serialization、Gson、Moshi、Jackson 向け、またはライブラリなしの Kotlin data class に変換します。user_name → userName のようにプロパティ名がキーと異なる場合は、選んだライブラリのアノテーション(@SerialName、@SerializedName、@Json、@JsonProperty)で JSON にマッピングし直します。class、object、when、fun などのキーワードはバッククォートで囲み、123abc や user-name のように名前として無効なキーは、命名設定に応じてマッピング付きで名前を変えるか、バッククォートで囲んで保持します。
使い方
- 1.JSON を貼り付けるか、.json ファイルをアップロードまたはドロップするか、例を読み込みます。
- 2.ルート型名、プロパティの命名、null 許容の扱いを設定します。
- 3.シリアライズライブラリを選び、すべてのクラスに引数なしのコンストラクタが必要ならデフォルト値をオンにします。
- 4.詳細設定でパッケージを指定するか、クラスをルートクラス内にネストします。
- 5.出力の下の注意を読んでから、コードをコピーするか .kt ファイルをダウンロードします。
型の推論方法
- •最初の要素だけでなく配列のすべての要素を確認し、同じ配列内のオブジェクトは統合します。
- •一部のオブジェクトにないキーは省略可能として T? = null になり、ときどき null になるキーは T? になります。この 2 つは区別されるため、{"id": 1, "name": "A"} と {"id": 2} からは val name: String? = null が生成されます。
- •32 ビットに収まる整数は Int、それより大きいものは Long、64 ビットを超えるものは BigInteger(kotlinx.serialization では JsonPrimitive)になります。±2^53 を超える値には、JavaScript クライアントで丸められるおそれがあるため注意が付きます。
- •同じ位置にある 1 と 2.5 は Double に拡張され、それ以外の混在は報告されます。
- •型の対応:文字列 → String、小数 → Double、真偽値 → Boolean、配列 → List<T>、オブジェクト → data class、空のオブジェクト → class、不明または混在 → Any?(kotlinx.serialization では JsonElement?)。
制限とプライバシー
サンプルはある時点でのデータの形を示すだけで、API の完全な仕様ではありません。コードを使う前に、省略可能なフィールド、汎用的な型、数値の幅を確認してください。生成されたコードには、serialization コンパイラプラグイン、Moshi のコード生成、jackson-module-kotlin など各ライブラリの通常の設定が必要です。Gson は Kotlin のコンストラクタを経由しないため、すべてのプロパティにデフォルト値がない限り、非 null プロパティにも null が入ることがあります。入力は 5 MB、入れ子 256 階層までです。2 MB 以上の場合は「生成」ボタンを押すまで生成されません。処理はすべてブラウザー内で行われ、JSON がアップロードされることはありません。
