UTILS.
100% ブラウザ内で完結
🐹

JSONからGo構造体へ

JSONサンプルをjsonタグ付きの型付きGo構造体に変換。ブラウザ内でint64、float64、bool、ネストされた構造体、スライスを推論します。

出力

このツールについて

JSONサンプルを貼り付けると、このツールがすぐに使えるGo構造体を生成し、すべてのキーに`json:"field"`タグを付けます。すべてブラウザ内でローカルに実行されるので、JSONがどこかにアップロードされることはありません。

ジェネレーターはJSON.parseを呼び出し、結果を再帰的に走査します。文字列はstring、真偽値はbool、整数はint64、小数のある数値はfloat64、nullはinterface{}、配列は最初の要素の型のスライス(空の場合は[]interface{})になり、各オブジェクトはそれぞれ名前付きのネストされた構造体になります。フィールド名はエクスポートされたPascalCaseに変換され(IDやURLのような一般的な頭字語は大文字化)、元のキーはjsonタグに保持されます。

APIレスポンスや設定ファイルからGoモデルを立ち上げ、必要に応じて手作業で型を整えるのに使えます。JSONには別個の整数型がないため、1.0のような値は整数として読み取られます。float64が必要なら小数(1.5)を追加してください。

よくある質問

数値はどのように型付けされますか?
小数部のないパースされた値はint64に、小数のある値はfloat64になります。JSONは1と1.0を区別できないため、どちらもint64として読み取られます。
ネストされたオブジェクトや配列はどうなりますか?
各オブジェクトは別個の名前付き構造体になります。配列は最初の要素の型のスライスになり、配列が空または要素がnullの場合は[]interface{}になります。
フィールド名は有効なGoですか?
キーはエクスポートされたPascalCaseに変換され、元のキーはjsonタグに保持されるので、user_idやfirst-nameのような名前でもJSONは正しくラウンドトリップします。
私のJSONはサーバーに送信されますか?
いいえ。パースとコード生成は完全にブラウザ内で行われ、何もアップロードも保存もされません。

その他のツール