【发布时间】:2020-12-12 23:17:18
【问题描述】:
我有一个结构体,其中一些字段如下:
type Test struct {
ID int `json:"id"`
Active bool `json:"active"`
Object []obj.Object `json:"objects"`
}
然后是一些将 Test 对象编码为 JSON 作为响应的处理函数,但在其中一个函数中,我想省略响应中的最后一个字段“对象”。我知道json:"-" 省略了它,但问题是我需要该字段用于其他功能。
我将对象编码为 JSON 的方式是使用这种方法:
json.NewEncoder(w).Encode(t)
有什么方法可以实现吗?提前致谢!
【问题讨论】:
-
如果你的结构真的只有两个你想编码的小对象,为什么不只用这两个创建一个新的(临时结构)?
-
重复。对此没有魔法编码/json 标志。使用 Marc 或 mkopriva 的解决方案。
-
@Marc 非常感谢!在调用 encode 时创建了 tmp 结构,并用来自对象 real strcut 的那些临时字段填充了这些临时字段。
-
@mkopriva 感谢您的回答!由于我没有太多字段,因此我选择在编码函数调用上传递临时结构,而不是按照您的建议进行定义。