1. ホーム
  2. json

[解決済み】GoのJSONマーシャルでJSONのキー名を小文字にする

2022-04-13 20:31:47

質問

を使いたいのですが "encoding/json" パッケージを使用して、アプリケーションのインポートされたパッケージの 1 つで宣言された構造体をマーシャリングします。

例えば..:

type T struct {
    Foo int
}

インポートされているため、構造体の利用可能な(エクスポートされた)フィールドはすべて大文字で始まります。しかし、小文字のキー名を持ちたい。

out, err := json.Marshal(&T{Foo: 42})

になります。

{"Foo":42} です。

を取得したいのですが

{"foo":42} です。

何か簡単な方法でこの問題を回避することはできないでしょうか?

どのように解決するのですか?

のドキュメントをご覧ください。 エンコーディング/json.Marshal . 構造体フィールドタグを使用して、生成されたjsonがどのようにフォーマットされるかを決定することについて説明しています。

例えば

type T struct {
    FieldA int    `json:"field_a"`
    FieldB string `json:"field_b,omitempty"`
}

これにより、以下のようなJSONが生成されます。

{
    "field_a": 1234,
    "field_b": "foobar"
}