例如,如果我们有一个像这样的结构体:
type device struct {
Name string
Online bool
}
func (device) online() bool {
return true
}
当我在这个结构体的实例上调用json.Mashal
时,我希望字段Online
的值来自方法online()
。
可以,但是您必须编写自己的MarshalJSON
实现:
func (d device) MarshalJSON() ([]byte, error) {
return json.Marshal(map[string]interface{}{
"Name": d.Name,
"Online": d.online(),
})
}
操场上联系