我需要解组平面 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>` }
使用所有可能的 <tag>
值将 data
解组到 result
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 }