>_devtools-hub

JSON to Go

JSONからGoの構造体(struct)を自動生成

開発者向けGoJSON

JSONを貼り付けるだけでGoのstruct定義をリアルタイム生成。json:"..."タグ・omitempty対応、ネストは無名structにインライン展開、配列内オブジェクトはキーをマージ。数値はint/float64、nullはinterface{}に型推論し、フィールド名はGoの慣習(PascalCase・ID/URLなどの頭字語)で出力します。ブラウザ内で完結し、貼り付けたJSONはサーバーに送信されません。

広告

JSON to Go

type
struct
json:"field"
JSON
GOGo struct

ネストは無名 struct にインライン展開。配列内オブジェクトは全要素のキーをマージ。数値は整数=int / 小数=float64、null=interface{} に推論します。生成後 gofmt を通すと整形されます。

Features

  • JSONからGoのstruct定義をリアルタイム生成
  • json:"field" タグを自動付与・omitempty トグル対応
  • ネストオブジェクトを無名 struct にインライン展開
  • 配列内オブジェクトの全キーをマージして網羅的に生成
  • 数値=int/float64・null=interface{}・頭字語(ID/URL)を慣習表記

JSONからGoのstructを自動生成する方法とjsonタグ設計

GoでJSONを扱うにはstructとjsonタグの定義が必要です。JSON to GoはAPIレスポンスや設定ファイルのJSONを貼り付けるだけでstruct定義を生成し、手書きによるフィールド名・型・タグのミスを防ぎます。ネスト構造や配列にも対応し、そのままコードに貼り付けて使えます。

Goでstructとjsonタグが必要な理由

Goの標準ライブラリ encoding/json は、JSONのキーとstructのフィールドを json:"..." タグで対応付けます。タグを省くとフィールド名(エクスポートのため大文字始まり)とJSONキー(小文字・スネークケースが多い)が一致せず、アンマーシャル時に値が入りません。JSON to Go は各フィールドに json:"元のキー" を自動付与するため、この対応付けミスを防げます。手書きで数十フィールドのタグを書く手間もなくなります。

型推論とinterface{}の扱い

JSONの値からGoの型を推論します。文字列はstring、真偽値はbool、整数はint、小数はfloat64にマッピングします。nullや型が定まらない値は interface{} になります。JSONでは数値はすべてnumberですが、小数点の有無で int と float64 を自動で切り替えます。金額IDなど大きな整数を扱う場合は、生成後に int64 や json.Number へ手動で調整してください。

ネストオブジェクトと配列のstruct化

ネストしたオブジェクトは無名struct(匿名構造体)としてインラインに展開されるため、1つの型定義で自己完結します。オブジェクトの配列は全要素のキーをマージして網羅的なstructを生成するので、サンプルによってフィールドが欠けても取りこぼしません。ルートがJSON配列([ {...}, {...} ])の場合も []struct として正しく生成します。再利用したいネスト部分は、生成後に名前付き型として切り出すと可読性が上がります。

omitemptyとGoの頭字語(ID・URL)の慣習

json:"field,omitempty" を付けると、ゼロ値(空文字・0・nil)のフィールドをJSON出力時に省略できます。APIリクエストのボディなど「値がある時だけ送りたい」ケースで有効です。トグルで一括切り替えできます。またGoの命名慣習では ID・URL・API・HTTP などの頭字語は UserID・APIURL のように全て大文字にします。JSON to Go はこれらの頭字語を自動で大文字化するため、gofmt を通せばそのまま実務で使える idiomatic な定義になります。

広告

Related Tools

Base64 Studio

Base64 エンコード & デコード

開発者向けテキストエンコード

使ってみる →

BOOTH

JSON Studio

JSON フォーマッター & バリデーター

JSON開発者向けフォーマッター

使ってみる →

BOOTH

Color Deck

カラーコード変換 & パレット保存

カラーデザイン開発者向け

使ってみる →

BOOTH

このツールを共有する