このツールについて
Go の構造体は Go で JSON をモデル化する慣用的な方法です。各エクスポートされたフィールドには `json:"..."` 構造体タグが付き、標準の `encoding/json` パッケージがデータのマーシャルとアンマーシャルにこれを使用します。このコンバーターは JSON サンプルを解析し、各値の Go 型を推論します。整数には `int`、小数には `float64`、`string`、`bool`、null や不明なものには `interface{}`、配列には `[]T` を使い、元のキーをタグに保持しながら PascalCase のエクスポートされたフィールド名を出力します。オブジェクトの配列は 1 つの形状にマージされるため、生成された構造体には要素全体で見られたすべてのキーが含まれます。
HTTP API のリクエスト型やレスポンス型を生成したり、設定ファイルや webhook のペイロードをモデル化したり、NoSQL ストアのサンプルドキュメントをパッケージにそのまま貼り付けられる型付き構造体に変換したりするのに使えます。ルート構造体に名前を付け、タグの `,omitempty` を切り替え、ネストされたオブジェクトに対して個別の名前付き型を使うか、インラインの匿名構造体を使うかを選べます。再利用可能な共有型に対して、手早い使い捨てのモデルに便利です。
すべてはブラウザー内のクライアントサイドで実行されます。あなたの JSON はローカルで解析され、サーバーに送信されることはありません。
よくある質問
JSON の型は Go の型にどのようにマッピングされますか?
整数は `int`、小数は `float64`、文字列は `string`、ブール値は `bool` になり、`null`(または不明なもの)は `interface{}` になります。配列は要素型の Go スライス `[]T` になり、ネストされたオブジェクトは名前付き構造体(そのオプションをオンにすればインラインの匿名構造体)になります。
なぜ user_id のようなフィールド名が UserID に変換されるのですか?
Go は大文字で始まるフィールドをエクスポートするため、キーは PascalCase に変換されます。一般的な頭字語(ID、URL、API、HTTP)は golint の慣習に従ってすべて大文字のまま保持されるため、`user_id` は `UserID` に、`api_url` は `APIURL` になります。元のキーは json 構造体タグに保持されます。
omitempty オプションは何をしますか?
構造体タグに `,omitempty` を追加すると、そのフィールドがゼロ値(0、""、false、nil、または空のスライス/マップ)を保持しているときに、マーシャルされた JSON からそのフィールドを省くよう `encoding/json` に指示します。これはエンコードにのみ影響し、デコードには影響しません。