JSON から Go
JSON から JSON タグ付きの Go 構造体を生成
JSON を貼り付けるか例を読み込むと、Go のコードを生成します。
JSON to Go が生成するもの
JSON to Go は API レスポンスや任意の JSON サンプルを、encoding/json でそのまま使える Go の構造体定義に変換します。エクスポートされたフィールドにはすべて json:"key" タグが付くため、名前を変えたフィールドもデコードできます。構造体タグで表現できないキー(空のキー、引用符、カンマ、絵文字などの記号)は誤った名前に黙ってマッピングするのではなく、json:"-" で除外して注意に表示します。
使い方
- 1.JSON を貼り付けるか、.json ファイルをアップロードまたはドロップするか、例を読み込みます。
- 2.ルート構造体名とパッケージ(既定は main)を設定します。
- 3.ポインターと omitempty のオン・オフを切り替えます。「詳細」では入れ子の構造体をインライン化できます。
- 4.出力の下の注意を読んでから、コードをコピーするか models.go をダウンロードします。
型の推論方法
- •最初の要素だけでなく配列のすべての要素を確認し、同じ配列内のオブジェクトは統合します。
- •一部のオブジェクトにないキーは省略可能、ときどき null になるキーは null 許容になります。この 2 つは区別して扱います。
- •同じ位置にある 1 と 2.5 は小数に拡張され、それ以外の混在は報告されます。
- •空の配列や常に null の値には型の手がかりがないため、汎用的な型を使用し、その理由を注意で説明します。
- •型の対応:string → string、整数 → int64(それを超える場合は uint64 または json.Number)、小数 → float64、真偽値 → bool、配列 → []T、オブジェクト → struct、不明または混在 → any。
- •ポインターをオンにすると、null 許容または省略可能なスカラーと構造体は *T になります。スライスと any はもともと nil 値を持つため、ポインターにはなりません。
omitempty、制限とプライバシー
omitempty はサンプルで欠けていたか null だったフィールドにのみ追加されます。エンコード時には 0、""、false などのゼロ値も省略するため、「省略可能」と同じ意味ではありません。サンプルはある時点でのデータの形を示すだけで、API の完全な仕様ではありません。コードを使う前に、省略可能なフィールド、汎用的な型、数値の幅を確認してください。入力は 5 MB、入れ子 256 階層までです。2 MB 以上の場合は「生成」ボタンを押すまで生成されません。処理はすべてブラウザー内で行われ、JSON がアップロードされることはありません。
