異なる実例を含める
同じAPIの複数レコードを最上位の配列に入れます。途中から現れるキーはnull許容になり、入れ子の配列も要素全体を見ます。
型生成
二件のレコードを含む例で、言語とルート型名を切り替えてください。
JSONの解析と生成はこのブラウザー内だけで行い、サンプルを送信・保存しません。
宣言2件・null許容型2件
JSON型定義ジェネレーターはAPIレスポンスから型の下書きを作りたいときに役立ちます。同じ形のレコードを複数入れると、二件目にだけあるキーも見落としません。
生成結果は契約そのものではありません。未観測のフィールド、業務上の制約、数値精度、プロジェクト固有のシリアライズ設定は自分で確認します。
JSON型定義ジェネレーターは先頭要素だけを見ません。後の要素にだけ存在するキーも型に含め、欠ける場合はnull許容として示します。 省略可能フィールドを確認できます。
同じJSONからRustの構造体、C#・Dart・PHPのクラス、Scalaのcase classを切り替えられます。保存する拡張子も選択に合わせます。
同じAPIの複数レコードを最上位の配列に入れます。途中から現れるキーはnull許容になり、入れ子の配列も要素全体を見ます。
RustはSerde、C#はSystem.Text.Jsonの属性を出します。DartはfromJson/toJsonを含みますが、PHPとScalaの宣言には別途変換処理が必要です。
自動生成は編集後350ミリ秒待ちます。オフにすると生成ボタンが現れ、Ctrl/Cmd+Enterも使えます。変更直後はコピーと保存が無効になります。
JSONからクラス生成する際、RustにはSerdeのrenameとOption、Vecを付けます。C#にはJsonPropertyNameを付け、元のキーを保持します。 Rust構造体生成では元のキーに対応する属性も付けます。
Dartモデル生成では入れ子のオブジェクトとリストを扱うfromJson/toJsonを出します。実際のFlutter環境での動作確認は必要です。
PHPには型付きプロパティと配列要素の注記、ScalaにはOptionとListを含むcase classを生成します。復元用codecは追加しません。
JSON型定義ジェネレーターは数値の元の表記を見てから型を決めます。大きすぎる整数や小数を、根拠なく狭い整数型に押し込みません。
このページではRust、C#、Dart、PHP、Scalaを生成します。選択肢は実装済みの五言語に限り、保存するファイル名も対応する拡張子になります。
いいえ。JSONはこのブラウザー内で解析し、モデルもローカルで作ります。URL取得やサンプルの永続保存は行いません。
配列の一部にないフィールド、またはnullが現れたフィールドをnull許容にします。nullしかない場合は具体的な型を確定できません。
はい。最上位の配列内の全オブジェクトを調べます。異なる種類の値が混ざる位置は広い型になるため、結果を確認してください。
JSONの文法は確認しますが、Schemaの必須項目や値の範囲は検証しません。Schemaの契約を適用する道具ではありません。
扱えない形がありましたか?
JSON型定義ジェネレーターに実際の複数レコードを入れ、null許容と名前を確かめてから現在の言語のファイルを保存し、プロジェクトで検証してください。