JSON から C++ を生成

JSON 入力

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

生成された C++

Configuration

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

JSON シリアライズ対応のモダン C++ クラス

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

この JSON→C++ 生成ツールを使って、バックエンドサービスやネイティブアプリ向けに JSON サンプルから C++ クラス/構造体を作成します。

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

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

    • ドメインモデルに合うルート Class Name を選びます。
    • nullable フィールドの表現(例: std::optional)を決めます。
    • 配列やネストオブジェクトのマッピング(通常は std::vector とネスト型)を確認します。
  3. ステップ 3 – 生成されたコードを確認する

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

    • 生成されたヘッダー/ソースをビルドシステムに追加します。
    • 使う JSON ライブラリで JSON を解析し、モデル型に詰めます。
    • スタイルガイドに合わせて clang-format などのフォーマッターを実行します。
  5. ステップ 5 – コピーまたはダウンロード

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

クイックヒント

  • 欠落/ null になり得るフィールドには std::optional を使います。
  • 解析とバリデーションはアプリの境界付近に寄せます。
  • 手動メモリ管理を避けるために値型と RAII を優先します。
出力例(簡略版)
// 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 C++ models (simplified)
struct Metadata {
  std::string plan;
};

struct Root {
  int id;
  std::string name;
  std::optional<std::string> email;
  bool active;
  std::vector<std::string> roles;
  Metadata metadata;
  std::string createdAt;
  double score;
  std::nullptr_t notes;
};

関連する JSON & C++ ツール

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

よくある質問

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

コンストラクタ、getter/setter、JSON のシリアライズ/デシリアライズ機能を備えたモダン C++ クラスを生成します。STL コンテナやスマートポインタにも対応します。

JSON のシリアライズはどのように行われますか?

nlohmann/json ライブラリで動作する toJson() / fromJson() メソッドを含むクラスを生成します。

対応する C++ 規格は?

生成コードは C++11 以降に対応し、std::string、std::vector などの STL コンテナを利用します(スマートポインタ対応はオプション)。

ネストされたオブジェクトはどう扱われますか?

ネストされたオブジェクトは対応するクラス定義として生成され、配列は std::vector にマップされます。

JSON から C++ を生成 | JSONSwiss