登录
首页 >  Golang >  Go问答

json.Marshal 可以从方法中获取字段的值吗?

来源:stackoverflow

时间:2024-04-19 20:12:30 387浏览 收藏

一分耕耘,一分收获!既然打开了这篇文章《json.Marshal 可以从方法中获取字段的值吗?》,就坚持看下去吧!文中内容包含等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!

问题内容

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

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

Playground link

今天关于《json.Marshal 可以从方法中获取字段的值吗?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>