我需要解组平面 json 字符串
data := `{"login":"Nickname","password":"some_pass","newPassword":"new_pass"}`
进入
UpdatePasswordRequest
嵌套结构:
type SignInRequest struct {
Login string `json:"login"`
Password string `json:"password"`
}
type UpdatePasswordRequest struct {
NewPassword string `json:"newPassword"`
SignInData SignInRequest `<tag>`
}
使用所有可能的
data
值将 result
解组到 <tag>
var result UpdatePasswordRequest
json.Unmarshal([]byte(data), &result)
给出空的
Login
和Password
:
result.SignInData.Login = ""
result.SignInData.Password = ""
我应该如何定义
<tag>
才能获得 Login
和 Password
字段的正确值?
如果您要使用
<tag>
的名称,您的 json 应该是嵌套的,而不是扁平的,如下所示:
data := `{"newPassword":"new_pass", "myTag":{"password":"some_pass", "login":"Nickname"}}`
如果你不能改变你的json,应该像这样组成结构(又名.struct embedding):
type SignInRequest struct {
Login string `json:"login"`
Password string `json:"password"`
}
type UpdatePasswordRequest struct {
NewPassword string `json:"newPassword"`
SignInRequest
}