2016-09-17 63 views
0

我有一个结构VideoInfo有一个关键在它称为embedCode。我查询的API返回嵌入代码embed_code。在解组响应期间,我如何确保embed_code进入embedCode如何处理结构具有不同的JSON键比JSON响应

还有一种简单的方法来获取一个大的JSON字符串并自动将其变成一个结构,或者只能使用一个地图?

回答

1

对于重映射的字段名称使用相应的注释在结构声明:

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) 
} 
+0

这是我落得这样做,所以我很高兴你确定这是正确的方式。非常感谢! –

1

首先,struct的字段必须从大写字母开始公开。因此,你需要类似的东西:

type VideoInfo struct { 
    EmbedCode string `json:"embed_code"` 
} 

而且看documentation获取更多信息。