可以 json。元帅从方法中获取字段的值?



例如,如果我们有一个像这样的结构体:

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(),
})
}

操场上联系