JSON から Go を生成

JSON 入力

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

生成された Go

Configuration

JSON データを入力して Go struct を生成します

JSON タグ付きの Go struct を生成

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

この JSON→Go 生成ツールを使って、API やサービス向けに JSON サンプルから JSON タグ付きの Go 構造体を作成します。

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

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

    • ルート Struct Name を設定します(例: Root)。
    • オプションフィールドの扱い(*stringomitempty、カスタム型など)を決めます。
    • キーが正しくマップされるように JSON タグと命名(例: json:"createdAt")を確認します。
  3. ステップ 3 – 生成されたコードを確認する

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

    • 構造体をパッケージに貼り付けて gofmt を実行します。
    • encoding/json でルート型に Unmarshal します。
    • API 境界で必須フィールドなどのバリデーションを追加します。
  5. ステップ 5 – コピーまたはダウンロード

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

クイックヒント

  • 欠落と空文字を区別したい場合は nullable フィールドにポインタを使います。
  • タイムスタンプ形式を制御できるときだけ time.Time を優先します。
  • 必要に応じて DTO 構造体を内部ドメインモデルと分離します。
出力例(簡略版)
// 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 Go structs (simplified)
type Metadata struct {
  Plan string `json:"plan"`
}

type Root struct {
  ID        int       `json:"id"`
  Name      string    `json:"name"`
  Email     *string   `json:"email"`
  Active    bool      `json:"active"`
  Roles     []string  `json:"roles"`
  Metadata  Metadata  `json:"metadata"`
  CreatedAt string    `json:"createdAt"`
  Score     float64   `json:"score"`
  Notes     any       `json:"notes"`
}

関連する JSON & Go ツール

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

よくある質問

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

JSON タグ付きの Go struct 定義を生成します。埋め込み struct、オプションフィールド用のポインタ型などに対応し、Go の命名規則に沿います。

JSON タグはどう扱われますか?

正しいフィールド名マッピングのために json タグを付与します。オプションフィールドには omitempty を付けることで柔軟なエンコードが可能です。

スライスや配列はどう扱われますか?

JSON 配列は Go の slice([]Type)にマップされ、要素型も適切に推定されます。ネストした配列も扱えます。

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

ネストされたオブジェクトは別の struct 定義として生成され、参照または埋め込みで関係を表現します。

JSON から Go を生成 | JSONSwiss