YamlBox

コードジェネレーター

JSON から Go 構造体ジェネレーター

JSON を貼り付けると、正しい json タグを含む gofmt スタイルの構造体が数秒で取得されます。配列項目全体で検出されたオプションのフィールドは空になり、null 許容値はポインターになり、int は int のままになります。

変換オプション

JSON サンプル

例: ユーザーオブジェクト · Webhook イベント —⌘/Ctrl + Enter 変換 · ファイルをドロップしてロード · ローカルで処理

Go 構造体

出力は読み取り専用です。コピー、ダウンロード、または共有を使用して移動します。

JSON 開始 ツールの使用方法

  1. JSONを貼り付けます

    統合している API からの応答が最適です。オプションのフィールドが表示されるように、いくつかの配列項目を含めます。

  2. ルートタイプ名を設定します

    リソースにちなんで名前を付けます (User、Event、Order)。ネストされた型には、そのキーに基づいて自動的に名前が付けられます。

  3. 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 ツールを参照する.

より深い読書

ブログ記事 · 5 分で読まれました JSON to Go: 最初の試行でアンマーシャルする構造体 JSON を、正しいフィールド名と JSON タグ、ネストされた型を含む Go 構造体に変換します。さらに、監視すべき数値トラップ、NULL トラップ、タイムトラップも含まれます。 ガイドを読む→