我有一个结构VideoInfo
,其中有一个名为embedCode
的键。我查询的API会将嵌入代码返回为embed_code
。在解组响应期间,如何确保embed_code
进入embedCode
?
还有一种简单的方法可以获取大型json字符串并自动将其转换为结构体,还是只能使用地图?
答案 0 :(得分:1)
首先,struct的字段必须从大写字母开始才能公开。所以你需要这样的东西:
type VideoInfo struct {
EmbedCode string `json:"embed_code"`
}
查看documentation了解更多信息。
答案 1 :(得分:1)
关于重新映射字段名称,请在结构声明中使用相应的注释:
type VideoInfo struct {
EmbedCode string `json:"embed_code"`
}
marshaller / un-marshaller只会处理公共字段,因此您需要将字段名称大写。
关于转换整个结构,是的很容易。声明一个实例来解组并传递对json.Unmarshal
方法的引用(来自测试):
data, _ := json.Marshal(request)
var resp response.VideoInfo
if err := json.Unmarshal(data, &resp); err != nil {
t.Errorf("unexpected error, %v", err)
}