Command Palette

Search for a command to run...

JS

JSON to Go Struct

JSONをjsonタグ付きのGo struct定義に変換する ネストされたオブジェクトはインライン構造体になり、オブジェクトの配列はマージされ、フィールド名はGo規約に従います。 client-sideを実行します。

JSON to Go構造体コンバーターとは何ですか?

JSON to Go struct コンバーターは、JSON ドキュメントを、それを記述する Go 型宣言に変換するため、 struct を手入力するのではなく、 encoding/json で同じデータのマーシャルを解除できます。 すべての JSON オブジェクトは Go struct になり、すべてのフィールドは元の名前にマップする json: "key" タグを運び、スカラー型は値から推測されます: JSON 文字列は string になり、整数は int になり、小数は float64 になり、true と false は bool になり、null は interface{} ペイロードを貼り付けると、すぐにコンパイルできる型ブロックが戻ります。

これは、実際の API レスポンスから Go 構造体を記述するのが面倒で、微妙に間違えやすいために存在します。フィールド名はエクスポートして Go の規則に従う必要があるため、id は ID になり、user_url は UserURL になりますが、json タグは正確な元のキーまたは json.Unmarshal を保持する必要があります。フィールドを静かにスキップします。ネストされたオブジェクトには独自の構造体が必要であり、オブジェクトの配列には任意の要素が持つすべてのキーをカバーする単一の構造体が必要です。深くネストされたレスポンス全体でそれを行うと、間違いが忍び込みます。コンバーターはこれらのルールを一貫して適用します。ネストされたオブジェクトはインライン構造体になり、オブジェクトの配列はマージされるため、一部の要素にのみ表示されるキーは生成されたタイプにまだ存在します。

すべてがブラウザで実行されます 貼り付けたJSONは、自分のデバイス上のJavaScriptで解析および分析されるため、アップロード、ログ、または保存されるものは何もなく、ページがロードされるとツールはネットワークを切断したまま動作し続けます ペイロードがプライベートAPI応答であるか、どこにも送信しないキーと値が含まれている場合に重要です。 rootタイプの名前を変更したり、より広いタイプが必要な場合は整数をint64に切り替えたり、エンコードされた出力からゼロ値を省略したい場合はすべてのタグにomitemptyを追加したりできます。

短い例では、go JSON から struct へのマッピングを示しています。 {"order_id": 1042, "total": 19.5, "items": [{"sku": "A1", "qty": 2}, {"sku": "B2", "qty": 1, "gift_note": "Happy birthday"}]} を貼り付け、root 型として order を入力し、Convert をクリックします。 orderID int、Total float64、Items []struct が Sku 文字列、Qty int、GiftNote 文字列を保持している型 Order struct を取得します。 GiftNote は、2 番目の項目だけがそれを持っているにもかかわらず、存在します。JSON から Go への構造体コンバーターは配列のすべての要素を 1 つのタイプに統合するためです。

JSON to Go構造体コンバーターを使用するには?

  1. json を貼り付けます

    入力ボックスにJSONオブジェクトまたは配列を貼り付けます 独自のデータを使用する前に、生成された構造体の形状を確認したい場合は、最初にサンプルをロードします。

  2. ルートタイプに名前を付ける

    User や ApiResponse などの最上位構造体の名前を入力します。これは、有効なエクスポートされた Go 識別子にクリーンアップされるため、記述されたとおりにコンパイルされます。

  3. 整数とタグのオプションを設定します

    整数には int または int64 を選択し、構造体がエンコードされて JSON に戻ったときに空のフィールドを省略したい場合は、omitempty をオンにします。

  4. 変換してコピーします

    「変換」をクリックして構造体定義を構築し、それらを Go ファイルにコピーします。無効な JSON は正確なパーサー メッセージで報告されるため、修正できます。

主な機能

  • 正しいjsonタグ

    すべてのフィールドは json: "original_key" タグを保持するため、go フィールドの名前が規則に従って変更されている場合でも、json.Unmarshal はデータを正確な JSON 名にマッピングし直します。

  • Go-convention フィールド名

    キーがエクスポートされ、一般的な初期主義が大文字になるため、id は ID、user_url は UserURL、html_body は HTMLBody となり、golint の期待値と一致します。

  • インラインネストされた構造体

    ネストされた JSON オブジェクトは、任意の深さまでインライン構造リテラルになるため、形状全体が 1 つの宣言内に存在し、1 つのブロックとして貼り付けることができます。

  • オブジェクトのマージされた配列

    オブジェクトの配列は、要素が持つすべてのキーをカバーする 1 つの構造体を生成し、キーの競合する値型は失敗するのではなく、interface{} にフォールバックします。

Frequently Asked Questions

JSON to Go struct コンバータは、JSON ドキュメントを、それを記述する Go 型宣言に変換します。各オブジェクトは struct になり、各フィールドは json: "key" タグを取得し、値の型は推論されるため、構造体を手書きせずにエンコーディング/json で同じデータのマーシャルを解除できます。

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!

json to gojson to go structgo json to structjson to golang structgo struct generatorjson to structconvert json to gogolang struct from jsonfree json to gono signup json to go