型生成

JSON型定義ジェネレーター同じサンプルを五つの言語へ

二件のレコードを含む例で、言語とルート型名を切り替えてください。

JSON型定義ジェネレーター

JSON入力

JSONの解析と生成はこのブラウザー内だけで行い、サンプルを送信・保存しません。

生成されたモデル · Rust

モデルの設定

配列の全レコードを調べます。欠落とnullは省略可能な型にし、未知の型は利用前に確認してください。

宣言2件・null許容型2件

JSON型定義ジェネレーターはAPIレスポンスから型の下書きを作りたいときに役立ちます。同じ形のレコードを複数入れると、二件目にだけあるキーも見落としません。

生成結果は契約そのものではありません。未観測のフィールド、業務上の制約、数値精度、プロジェクト固有のシリアライズ設定は自分で確認します。

JSON型定義ジェネレーターを使う理由

全レコードからフィールドを集める

JSON型定義ジェネレーターは先頭要素だけを見ません。後の要素にだけ存在するキーも型に含め、欠ける場合はnull許容として示します。 省略可能フィールドを確認できます。

フィールドの異なる二枚のレコードカードが一枚のモデルカードにまとまり、省略可能な欄に空の丸が付く。

入力を変えずに言語を選ぶ

同じJSONからRustの構造体、C#・Dart・PHPのクラス、Scalaのcase classを切り替えられます。保存する拡張子も選択に合わせます。

一枚の入力カードから複数の経路が伸び、構成の違う出力カードに分かれる。

推論できる根拠を増やす

01

異なる実例を含める

同じAPIの複数レコードを最上位の配列に入れます。途中から現れるキーはnull許容になり、入れ子の配列も要素全体を見ます。

02

言語ごとの範囲を読む

RustはSerde、C#はSystem.Text.Jsonの属性を出します。DartはfromJson/toJsonを含みますが、PHPとScalaの宣言には別途変換処理が必要です。

03

新しい結果だけを持ち出す

自動生成は編集後350ミリ秒待ちます。オフにすると生成ボタンが現れ、Ctrl/Cmd+Enterも使えます。変更直後はコピーと保存が無効になります。

出力される型と対応付け

RustとC#のキー対応

JSONからクラス生成する際、RustにはSerdeのrenameとOption、Vecを付けます。C#にはJsonPropertyNameを付け、元のキーを保持します。 Rust構造体生成では元のキーに対応する属性も付けます。

Dartの明示的な変換

Dartモデル生成では入れ子のオブジェクトとリストを扱うfromJson/toJsonを出します。実際のFlutter環境での動作確認は必要です。

PHPとScalaの下書き

PHPには型付きプロパティと配列要素の注記、ScalaにはOptionとListを含むcase classを生成します。復元用codecは追加しません。

数値を丸めずに判定

JSON型定義ジェネレーターは数値の元の表記を見てから型を決めます。大きすぎる整数や小数を、根拠なく狭い整数型に押し込みません。

サンプルから分からないこと

対象言語は五つだけ
Rust、C#、Dart、PHP、Scalaだけを選べます。TypeScriptやGoなどの専用ツールと重複する未実装ボタンは置きません。
Schemaを解釈しない
JSON SchemaやOpenAPIのrequired、範囲、参照を適用しません。URLからの取得もしないため、サンプルにない契約は推論できません。
大きな数は要確認
64ビット符号付き整数に収まらない数や小数には広い型を使います。実際に値を往復させるには利用側のパーサー設定を確認してください。
宣言だけでは復元できない言語もある
PHPのプロパティはjson_decodeだけでは埋まらず、Scalaにもcodecが必要です。RustにはSerde依存が必要で、このページは生成コードを実行しません。
厳密な入力と上限
コメント、重複キー、末尾カンマ、混在する最上位配列は拒否します。入力は50万文字・深さ100・5万ノード、出力は100万文字までです。

JSON型定義ジェネレーターのよくある質問

どの言語の型を生成できますか?

このページではRust、C#、Dart、PHP、Scalaを生成します。選択肢は実装済みの五言語に限り、保存するファイル名も対応する拡張子になります。

JSONはアップロードされますか?

いいえ。JSONはこのブラウザー内で解析し、モデルもローカルで作ります。URL取得やサンプルの永続保存は行いません。

どのフィールドを省略可能と判断しますか?

配列の一部にないフィールド、またはnullが現れたフィールドをnull許容にします。nullしかない場合は具体的な型を確定できません。

オブジェクトが混在した配列も扱えますか?

はい。最上位の配列内の全オブジェクトを調べます。異なる種類の値が混ざる位置は広い型になるため、結果を確認してください。

JSON Schemaの検証もできますか?

JSONの文法は確認しますが、Schemaの必須項目や値の範囲は検証しません。Schemaの契約を適用する道具ではありません。

扱えない形がありましたか?

JSON型定義ジェネレーターで下書きを作る

JSON型定義ジェネレーターに実際の複数レコードを入れ、null許容と名前を確かめてから現在の言語のファイルを保存し、プロジェクトで検証してください。