JA
マイツール

JSON Go構造体変換

JSONをjsonタグ付きのGo構造体定義に変換します。IDなどの頭字語に対応した名前、intとfloat64の判定、omitempty、入れ子またはインラインの構造体に対応しています。

配列の一部の項目にないフィールドには、常にomitemptyが付きます。
Go
型の宣言数
3

常にnullのフィールド、空のフィールド、複数の型が混在するフィールドは any 型になります。実際の型がわかったら置き換えてください。

マイツール →
広告

JSONのサンプルを、encoding/json ですぐに使える json タグ付きのGo構造体定義に変換します。キーは標準的な頭字語の規則を適用した公開のGo名になり(id → ID、avatar_url → AvatarURL)、数値は値に応じてintまたはfloat64になり、ときどきnullになるフィールドはポインタになり、配列の一部の項目にないフィールドにはomitemptyが付きます。出力はフィールドをそろえて表示しているので、貼り付けたあとにgofmtを実行してください。

使い方

  1. 代表的なJSONのサンプルを貼り付けます。複数の項目を持つ配列があると、最も適切な型になります。
  2. 最上位の構造体の名前を設定します。
  3. 入れ子のオブジェクトを、名前付きの別の型にするか、インラインの匿名構造体にするかを選びます。
  4. コードをパッケージにコピーし、変更したい名前や型があれば修正します。

計算式

string → string · 整数 → int(32ビットを超える場合はint64)· 小数 → float64 · true/false → bool · [ … ] → []T · { … } → struct · nullまたは混在 → any

配列の項目をまたいで、同じ位置にある値を統合します。どれか1つの項目でも数値が小数なら、そのフィールドはfloat64になります。一部の項目でnullになるフィールドはポインタ(*string)になり、すべての項目でnullのフィールドや、異なる種類の値を持つフィールドはanyになります。各フィールドには json:"avatar_url" のようなタグが付き、encoding/jsonが元のキーに対応付けられます。重複したキーと、有限の安全な整数の範囲外の数値は拒否し、その他の小数はJavaScriptの精度に従います。

計算例

サンプルのレコードからは3つの型が生成されます。Root には ID int、Name string、Email string、Active bool、Score float64、Tags []string、Address Address、Orders []Order、Manager any があります。Address には文字列のフィールドが3つあります。Order には ID string、Total float64(25.5 と 12 が float64 に統合)、Items int、そして json:"coupon,omitempty" が付いた Coupon string があります。クーポンがあるのは1件の注文だけだからです。

よくある質問

数値がfloat64ではなくintになるのはなぜですか?

確認した値がすべて整数だったためです。JSONの数値型は1つしかなく、12.0 も 12 として読み込まれます。そのフィールドに小数が入る可能性がある場合は、手動でfloat64に変更してください。

一部のフィールドがポインタなのはなぜですか?

そのフィールドが、少なくとも1つのサンプルでnullだったためです。ポインタを使うと、JSONのnull(nil)と空文字列のようなゼロ値を区別できます。

インライン構造体と別の構造体のどちらを使うべきですか?

名前付きの別の型のほうが、再利用・テスト・ドキュメント化がしやすくなります。インライン構造体は、1回限りのレスポンスを1つの宣言にまとめられます。

omitemptyは何をしますか?

マーシャル時に、フィールドがゼロ値(空文字列、0、false、nil)であれば、encoding/jsonがそのフィールドを出力から省きます。アンマーシャル時には影響しません。フィールドがない場合と明示的なゼロ値の場合は区別されないため、区別が必要ならポインタやカスタム型を使ってください。

出典

最終更新:

このツールを引用する
APA

kakaoCalc. (2026, November 8). JSON Go構造体変換. https://kakao.mobile/ja/tools/json-to-go-struct-tool/

MLA

“JSON Go構造体変換.” kakaoCalc, 8 Nov. 2026, kakao.mobile/ja/tools/json-to-go-struct-tool/.

広告