私はembedCode
と呼ばれるキーを持つVideoInfo
という構造体を持っています。私が照会しているAPIは埋め込みコードをembed_code
と返します。応答をアンマーシャリングしている間に、どうすればembed_code
がembedCode
に入りますか?jsonのレスポンスとは異なるjsonキーを持つStructを扱う方法
大きなjson文字列を自動的に構造体に変換する簡単な方法や、マップのみを使用する方法もありますか?
私はembedCode
と呼ばれるキーを持つVideoInfo
という構造体を持っています。私が照会しているAPIは埋め込みコードをembed_code
と返します。応答をアンマーシャリングしている間に、どうすればembed_code
がembedCode
に入りますか?jsonのレスポンスとは異なるjsonキーを持つStructを扱う方法
大きなjson文字列を自動的に構造体に変換する簡単な方法や、マップのみを使用する方法もありますか?
は、構造体の宣言に対応するアノテーションを使用:
type VideoInfo struct {
EmbedCode string `json:"embed_code"`
}
あなたは、フィールド名を大文字にする必要がありますので、マーシャラー/アンマーシャラーのみ、公共の場を処理します。
構造全体の変換に関しては、それは簡単です。アンマーシャルにインスタンスを宣言し、(テストから)json.Unmarshal
メソッドへの参照を渡す:
data, _ := json.Marshal(request)
var resp response.VideoInfo
if err := json.Unmarshal(data, &resp); err != nil {
t.Errorf("unexpected error, %v", err)
}
まず、構造体のフィールドは大文字から始まり、publicにする必要があります。ですから、そのようなことが必要です。
type VideoInfo struct {
EmbedCode string `json:"embed_code"`
}
をそして詳細はdocumentationを見てください。フィールド名を再マッピングに関して
これは私がやってしまったものですので、あなたはこれが正しい方法であることを確認した喜んでイム。本当にありがとう! –