json - 如何处理具有与 json 响应不同的 json 键的结构

标签 json go struct

我有一个结构 VideoInfo,其中有一个名为 embedCode 的键。我正在查询的 API 将嵌入代码返回为 embed_code。在解码响应期间,如何确保 embed_code 进入 embedCode

还有一种简单的方法可以获取一个大的 json 字符串并自动将其转换为一个结构,还是只能使用一个映射?

最佳答案

关于重新映射字段名称,请在结构声明中使用相应的注释:

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

marshaller/un-marshaller 只会处理公共(public)字段,所以你需要将字段名大写。

关于转换整个结构,是的,这很容易。声明一个实例以解编码并传递对 json.Unmarshal 方法的引用(来自测试):

data, _ := json.Marshal(request)

var resp response.VideoInfo
if err := json.Unmarshal(data, &resp); err != nil {
    t.Errorf("unexpected error, %v", err)
}

关于json - 如何处理具有与 json 响应不同的 json 键的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39551498/

相关文章:

google-app-engine - 如何使用电子邮件地址查询 Appengine 数据存储区

Golang type interface {} 是没有方法的接口(interface)

Golang gorilla 从表单中解析特定格式的日期

json - Windows PowerShell JSON转换为CSV “System.Object[]”的问题

java - 比较两个 JSON 并显示我们更改了哪一列的 Activity ?

c - 在C语言中,如何从2个中选择将某个东西分配给某个东西?

c# - .net 中类和结构之间的实际区别(不是概念上的)?

c array wrapper struct 不允许 malloc

PHP MySQL 查询参数化问题

sql - 如何使用任意键的 postgresql JSON?