JSON入力

Go出力

JSONをGoとは?

Goは構造化データにstructを使用します。encoding/jsonでJSONをアンマーシャルする際、対応するstructが必要です。このツールはJSONからGo structを生成します。

設定パネルでstruct名とパッケージを設定してください。JSONタグでjson:"field_name"を有効にし、オプショナルフィールドにはポインタを有効にしてください。

変換は完全にブラウザで実行されます。JSONはサーバーに送信されません。

使い方

1

JSONを貼り付けまたはアップロード

JSONを左のエディタに貼り付けるか、アップロードでファイルを読み込んでください。サンプルで例データを読み込めます。設定でstruct名とパッケージ名を設定してください。

2

生成されたstructを確認

右パネルに生成されたGo structが表示されます。ネストオブジェクトはネストまたは別structに。配列は<code>[]Type</code>になります。無効なJSONの場合は先にJSONフォーマッターまたはJSONバリデーターで修正してください。

3

コピーまたはダウンロード

<strong>コピー</strong>でクリップボードに、<strong>ダウンロード</strong>で<code>.go</code>ファイルとして保存できます。

JSONをGoの例

JSONオブジェクトからGo structを生成する例です。

例:加入者レコード

JSON入力:

入力

生成されたGo出力:

出力

JSONをGoが役立つ場面

API統合時に必要です。サンプルレスポンスを貼り付けるとencoding/jsonで使える型付きstructが得られます。

設定ファイルもよくあるケースです。2つのJSONをマージするにはJSONマージツールを使用してください。

MongoDB、Firestore、CouchDBのデータベースエクスポートは大きなJSONです。ここで処理すると構造を理解し、Go structを生成できます。

よくある質問

JSONタグはなぜ?

Go structのフィールド名はJSON用にエクスポート(大文字)が必要です。json:"fieldName"タグでstructフィールドをJSONキーにマッピングします。

オプショナルフィールドにポインタ?

JSONフィールドがnullや欠落の場合、*Typeでゼロ値と欠落を区別できます。

データは送信されますか?

いいえ。生成はブラウザで実行されます。

omitemptyは?

空のときに出力したくないフィールドにはjson:"name,omitempty"を追加してください。

動的JSONにinterface{}?

不明な構造にはmap[string]interface{}interface{}を使用してください。

関連ツール

Go JSON処理はencoding/jsonを参照。JSONはJSON仕様RFC 8259を参照。