为了账号安全,请及时绑定邮箱和手机立即绑定

JSON解组后自动创建计算字段

JSON解组后自动创建计算字段

Go
慕妹3146593 2021-11-15 20:52:43
简化示例假设我有一个用于解组一些 json 的结构:type DataEntry struct {    FirstName string `json:"first"`    LastName  string `json:"last"`    FullName  string}我想填充该FullName属性的内容是FirstName + LastName.我目前正在做的是为 DataEntry 定义一个方法,它执行以下类型的计算:func (de *DataEntry) Compute() {   de.FullName = de.FirstName + " " + de.LastName}并在从 JSON 填充结构体后调用 if:// Grab datarequest, _ := http.Get("http://........")var entry DataEntrydec := json.NewDecoder(request.Body)dec.Decode(&entry)// Compute the computed fieldsentry.Compute()有一个更好的方法吗?我可以使用 create my ownUnmarshalJSON并将其用作触发器来自动计算该FullName字段吗?
查看完整描述

1 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

在这种情况下,我只会FullName变成一种方法。但是,如果您真的需要这样做,只需创建一个包装器类型,它也是json.Unmarshaler:


type DataEntryForJSON DataEntry


func (d *DataEntryForJSON) UnmarshalJSON(b []byte) error {

    if err := json.Unmarshal(b, (*DataEntry)(d)); err != nil {

        return err

    }

    d.FullName = d.FirstName + " " + d.LastName

    return nil

}

游乐场:http : //play.golang.org/p/g9BnytB5DG。


查看完整回答
反对 回复 2021-11-15
  • 1 回答
  • 0 关注
  • 212 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信