JSON から Dart を生成

JSON 入力

エディターを読み込み中…

生成された Dart

Configuration

JSON データを入力して Dart クラスを生成します

null safety と JSON シリアライズ対応のクラス

JSON を Dart に変換する方法 – 手順ガイド

この JSON→Dart 生成ツールを使って、Flutter アプリや Dart サービス向けに JSON サンプルから null-safe な Dart クラスを作成します。

  1. ステップ 1 – JSON サンプルを貼り付ける

    • 左側のエディターに代表的な JSON オブジェクトまたは配列を貼り付けます。
    • ネストしたオブジェクト、配列、null になり得るフィールドを含めて、型推論を正確にします。
    • Import を使ってファイル、URL、サンプルデータから JSON を読み込みます。
  2. ステップ 2 – Dart クラスのオプションを選ぶ

    • ルートモデルの Class Name を設定します(例: Root)。
    • null safety を有効にし、オプションフィールドがどう表現されるか(String? など)を確認します。
    • コード生成を使う場合は、シリアライズ方式(例: json_serializable)を選びます。
  3. ステップ 3 – 生成されたコードを確認する

    • フィールド名、型、配列/オブジェクトの表現を確認します。
    • 利用可能なら Root Type Name、null の扱い、フレームワーク等のオプションを調整します。
    • 推論が違う場合は JSON サンプルを調整して再生成します。
  4. ステップ 4 – Flutter/Dart でモデルを使う

    • 生成したクラスをプロジェクトに追加します(例: lib/models)。
    • fromJson ファクトリーまたは生成されたシリアライザーで JSON をモデルに変換します。
    • プロジェクトのスタイルに合わせるため flutter format を実行します。
  5. ステップ 5 – コピーまたはダウンロード

    • 出力をプロジェクトにコピーするか、ファイルとしてダウンロードします。
    • フォーマッター/リンターを実行してコードスタイルを整えます。
    • 必要に応じて JSON の解析/シリアライズ用ライブラリを追加します。

クイックヒント

  • モデルクラスは小さく保ち、ネスト型を合成して見通しを良くします。
  • API のフォーマットが安定している場合にだけ DateTime パースを使います。
  • 大きいモデルでは手書きマッピングのバグを減らすため生成シリアライザーを優先します。
出力例(簡略版)
// JSON 入力
{
  "id": 123,
  "name": "Maeve Winters",
  "email": "[email protected]",
  "active": true,
  "roles": ["admin", "editor"],
  "metadata": { "plan": "pro" },
  "createdAt": "2024-03-01T10:15:00Z",
  "score": 99.5,
  "notes": null
}

// Generated Dart models (simplified)
class Metadata {
  final String plan;
  const Metadata({required this.plan});
}

class Root {
  final int id;
  final String name;
  final String? email;
  final bool active;
  final List<String> roles;
  final Metadata metadata;
  final String createdAt;
  final double score;
  final Object? notes;

  const Root({
    required this.id,
    required this.name,
    required this.email,
    required this.active,
    required this.roles,
    required this.metadata,
    required this.createdAt,
    required this.score,
    required this.notes,
  });
}

関連する JSON & Dart ツール

この JSON→Dart 生成ツールと相性の良い JSON/スキーマ関連ツールもチェックしてください。

よくある質問

どのような Dart 機能に対応していますか?

型安全な Dart クラスを生成し、手動の JSON シリアライズと json_annotation パッケージの両方に対応します。null 値は nullable 型で表現し、Dart の命名規則に沿います。

json_annotation はどのように動作しますか?

json_annotation フレームワークを選択すると、@JsonSerializable() を付与し、build_runner による fromJson/toJson 生成を前提としたコードを出力します。

nullable 値はどう扱われますか?

JSON の null は Dart の nullable 型(?)にマップされます。必須フィールドはコンストラクタで required を使い、null safety の原則に沿います。

Dart の型システムはどう反映されますか?

int、double、String、bool、List、Map など適切な型を用い、フィールド名は camelCase など Dart の慣習に従います。

JSON から Dart を生成 | JSONSwiss