コードジェネレーター
JSON から Go 構造体ジェネレーター
JSON を貼り付けると、正しい json タグを含む gofmt スタイルの構造体が数秒で取得されます。配列項目全体で検出されたオプションのフィールドは空になり、null 許容値はポインターになり、int は int のままになります。
- ブラウザ上で 100% 動作します
- サインアップなし、アップロードなし
- 無料で無制限に使用可能
JSON サンプル
例: ユーザーオブジェクト · Webhook イベント —⌘/Ctrl + Enter 変換 · ファイルをドロップしてロード · ローカルで処理
Go 構造体
出力は読み取り専用です。コピー、ダウンロード、または共有を使用して移動します。
JSON 開始 ツールの使用方法
-
JSONを貼り付けます
統合している API からの応答が最適です。オプションのフィールドが表示されるように、いくつかの配列項目を含めます。
-
ルートタイプ名を設定します
リソースにちなんで名前を付けます (User、Event、Order)。ネストされた型には、そのキーに基づいて自動的に名前が付けられます。
-
Go ファイルにコピーします
プロジェクトに貼り付けて gofmt を実行します。フィールド名は大文字で表記され、タグは元のキーと正確に一致するため、json.Unmarshal はすぐに機能します。
このツールの違い
- 元のキーに忠実な json タグ (snake_case とダッシュを含む)
- 一部の配列項目に欠落しているフィールドの省略空
- 完全に null 許容値 (*string) のポインター型なので、null はきれいにアンマーシャリングされます。
- 実際のサンプル値からの int と float64。相容れないミックスの場合はどれでも
- タブインデントを使用した gofmt 互換の出力
アーキテクチャによるプライバシー: このページには入力を受け取る分析は含まれておらず、変換コードはタブで実行されます。ロード後にネットワークから切断して作業を続けることができます。
JSON 開始 — よくある質問
一部のフィールドがポインターになるのはなぜですか?
JSON null はプレーン文字列または int に格納できないため、null 許容フィールドはポインタ (*string, *int) を取得します。これにより、エンコーディング/json は失敗することなく「存在しない」と「存在するが null」を区別できるようになります。これがまさにポインター型の目的です。
フィールドに型が混在している場合はどうなりますか?
値が、ある項目では文字列であり、別の項目では数値である場合、ジェネレーターは間違った具体的な型を作成するのではなく、any を使用します。 API が本当に緩い場合は、カスタム UnmarshalJSON を決定できます。
生成されたタグにはomitemptyが含まれていますか?
サンプル内の少なくとも 1 つの項目に欠落していたフィールドのみ。必須フィールドにはプレーンなタグが付けられるため、ラウンドトリップによってデータが削除されることはありません。
出力は gofmt と互換性がありますか?
はい — タブ、配置、フィールドの順序は gofmt の規則に従います。貼り付け後に gofmt -l を実行すると、変更は報告されません。
大規模な応答の構造体を生成できますか?
はい。ネストされたオブジェクトは個別の名前付き構造体になりますが、解析された JSON では循環が不可能であるため、深くネストされたペイロードであっても、フラットで読み取り可能な型のセットが生成されます。
関連ツール
“json から golang 構造体へ”, “構造体ジェネレーターに行く”, “json をオンラインに接続する” をお探しですか?あなたは正しい場所にいます — すべての 19 ツールを参照する.