如何在Go反序列化时将扁平JSON映射到嵌套结构体字段?
问题解决方法
你需要将UpdatePasswordRequest结构体中SignInData字段的标签定义为json:",inline",Go标准库的json.Unmarshal会通过该标签将扁平JSON里的login和password字段直接映射到嵌套的SignInRequest结构体对应字段中。
修改后的完整结构体定义如下:
type SignInRequest struct { Login string `json:"login"` Password string `json:"password"` } type UpdatePasswordRequest struct { NewPassword string `json:"newPassword"` SignInData SignInRequest `json:",inline"` }
执行原反序列化代码后,result.SignInData.Login会被赋值为"Nickname",result.SignInData.Password会被赋值为"some_pass",result.NewPassword则为"new_pass",完全符合预期。
内容的提问来源于stack exchange,提问作者Andriy
相关产品推荐
相关产品推荐

