構造体を埋め込みますが、jsonには特定のフィールドしかありません

user776942:

埋め込みたい構造体を持っていますが、その構造体の特定のフィールドのみをjsonエンコードしたい(そして小文字にしたい)。それは可能ですか?

https://play.golang.org/p/bEC4zlx2oC

package main

import (
    "encoding/json"
    "fmt"
    "net/url"
)

type MyStruct struct {
    Name string `json:"name"`
    *url.URL
}

func main() {
    m := &MyStruct{
        "Bob",
        &url.URL{
            Scheme: "http", 
        },
    }

    j, err := json.Marshal(m)
    if err != nil {
        fmt.Println(err)
    }
    fmt.Println(string(j))  // want {"name":"Bob","scheme":"http"}
}
jeevatkm:

例を挙げてコメントを拡大します。

Marshalインターフェースを実装する必要があります。

例えば:

func (u *MyStruct) MarshalJSON() ([]byte, error) {
    return json.Marshal(&struct {
        Name   string `json:"name"`
        Scheme string `json:"scheme"`
    }{
        Name:   u.Name,
        Scheme: u.Scheme,
    })
}

Playリンク:https : //play.golang.org/p/LLchuOdYvf

出力:

{"name":"Bob","scheme":"http"}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

構造体に構造体を埋め込む方法はありますか?

分類Dev

埋め込まれた構造体から構造体フィールドにアクセスする

分類Dev

変更できない埋め込み構造体のフィールドにどのようにタグを付けますか?

分類Dev

MongoDB-埋め込みドキュメントで特定のフィールドが見つかりません

分類Dev

フィールドが特定の列挙型バリアントである場合にのみ、構造体のメソッドを定義しますか?

分類Dev

GoでフラットなJSONオブジェクトになるように、埋め込まれた構造体フィールドを持つ構造体をマーシャリングするにはどうすればよいですか?

分類Dev

親の埋め込み構造体フィールド値を取得するにはどうすればよいですか?

分類Dev

Goの構造体メンバーまたは埋め込み構造体にポインターを返す?

分類Dev

構造体は、埋め込み型の1つが実装するすべてのインターフェースを実装しますか?

分類Dev

MaybeUninit構造体のフィールドに書き込みますか?

分類Dev

構造体にフィールドがあることを確認し、そのタイプを確認する方法はありますか?

分類Dev

埋め込まれた構造体のメソッドから構造体を含むフィールドを反映するにはどうすればよいですか?

分類Dev

構造体のフィールドとして保存するには、クロージャーをボックス化する必要がありますか?

分類Dev

mgo、mongodb:埋め込まれた構造体から1つのフィールドに一致するドキュメントを検索する

分類Dev

構造体フィールドまたは構造体にポインターを作成する必要がありますか?行く

分類Dev

F#コアライブラリのソースコードには、タプルを構造体としてコンパイルするためのフラグがありますが、機能させることができません

分類Dev

構造体に構造体を埋め込むことはできません

分類Dev

C ++ / Qtの構造体のフィールドに文字列を変換する方法はありますか?

分類Dev

型埋め込みを使用して特定のフィールドにアクセスしますか?

分類Dev

フィールド(golang)に構造体を埋め込む目的は何ですか?

分類Dev

Cには、mallocで構造体を初期化し、そのフィールドを設定する簡単な方法がありますか?

分類Dev

埋め込みインターフェース:構造体はメソッドを実装していません

分類Dev

ビットフィールドを使用した構造体サイズが正しくありません

分類Dev

互いに素な構造体フィールドへの可変参照を取得するためのより良い方法はありますか?

分類Dev

ルート構造のフィールドが最初に解析され、次に埋め込まれた構造のフィールドが解析されることを確認するにはどうすればよいですか

分類Dev

Golang bson構造体-jsonの1つのフィールドに複数のフィールド名を使用しますが、データベースへの書き込みには1つだけです

分類Dev

discord.jsの埋め込みメッセージに3つ以上のインラインフィールドを作成する方法はありますか?

分類Dev

ある構造体のフィールドを別の構造体に更新します

分類Dev

Unmarshal実装があるのに、埋め込まれた構造体がデコードされないのはなぜですか?

Related 関連記事

  1. 1

    構造体に構造体を埋め込む方法はありますか?

  2. 2

    埋め込まれた構造体から構造体フィールドにアクセスする

  3. 3

    変更できない埋め込み構造体のフィールドにどのようにタグを付けますか?

  4. 4

    MongoDB-埋め込みドキュメントで特定のフィールドが見つかりません

  5. 5

    フィールドが特定の列挙型バリアントである場合にのみ、構造体のメソッドを定義しますか?

  6. 6

    GoでフラットなJSONオブジェクトになるように、埋め込まれた構造体フィールドを持つ構造体をマーシャリングするにはどうすればよいですか?

  7. 7

    親の埋め込み構造体フィールド値を取得するにはどうすればよいですか?

  8. 8

    Goの構造体メンバーまたは埋め込み構造体にポインターを返す?

  9. 9

    構造体は、埋め込み型の1つが実装するすべてのインターフェースを実装しますか?

  10. 10

    MaybeUninit構造体のフィールドに書き込みますか?

  11. 11

    構造体にフィールドがあることを確認し、そのタイプを確認する方法はありますか?

  12. 12

    埋め込まれた構造体のメソッドから構造体を含むフィールドを反映するにはどうすればよいですか?

  13. 13

    構造体のフィールドとして保存するには、クロージャーをボックス化する必要がありますか?

  14. 14

    mgo、mongodb:埋め込まれた構造体から1つのフィールドに一致するドキュメントを検索する

  15. 15

    構造体フィールドまたは構造体にポインターを作成する必要がありますか?行く

  16. 16

    F#コアライブラリのソースコードには、タプルを構造体としてコンパイルするためのフラグがありますが、機能させることができません

  17. 17

    構造体に構造体を埋め込むことはできません

  18. 18

    C ++ / Qtの構造体のフィールドに文字列を変換する方法はありますか?

  19. 19

    型埋め込みを使用して特定のフィールドにアクセスしますか?

  20. 20

    フィールド(golang)に構造体を埋め込む目的は何ですか?

  21. 21

    Cには、mallocで構造体を初期化し、そのフィールドを設定する簡単な方法がありますか?

  22. 22

    埋め込みインターフェース:構造体はメソッドを実装していません

  23. 23

    ビットフィールドを使用した構造体サイズが正しくありません

  24. 24

    互いに素な構造体フィールドへの可変参照を取得するためのより良い方法はありますか?

  25. 25

    ルート構造のフィールドが最初に解析され、次に埋め込まれた構造のフィールドが解析されることを確認するにはどうすればよいですか

  26. 26

    Golang bson構造体-jsonの1つのフィールドに複数のフィールド名を使用しますが、データベースへの書き込みには1つだけです

  27. 27

    discord.jsの埋め込みメッセージに3つ以上のインラインフィールドを作成する方法はありますか?

  28. 28

    ある構造体のフィールドを別の構造体に更新します

  29. 29

    Unmarshal実装があるのに、埋め込まれた構造体がデコードされないのはなぜですか?

ホットタグ

アーカイブ