卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章35543本站已运行397

如何在解组时将整个 json 字符串传递到嵌套结构的字段?

如何在解组时将整个 json 字符串传递到嵌套结构的字段?

在PHP中,当我们需要将整个JSON字符串传递给嵌套结构的字段时,有一种简单的方法可以实现。首先,我们需要确保我们已经将JSON字符串解码为PHP数组或对象。然后,我们可以使用json_encode()函数将解码后的数组或对象再次编码为JSON字符串。接下来,我们可以将编码后的JSON字符串赋值给目标字段。这样,我们就成功地将整个JSON字符串传递给嵌套结构的字段了。这是一种简单而有效的方法,让我们在PHP中轻松处理JSON数据。

问题内容

我需要解组平面 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

var result UpdatePasswordRequest
json.Unmarshal([]byte(data), &result)

给出空的 LoginPassword:

result.SignInData.Login = ""
result.SignInData.Password = ""

我应该如何定义 以获得 LoginPassword 字段的正确值?

解决方法

如果您要使用 的名称,您的 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
}
卓越飞翔博客
上一篇: 如何在 Go 应用程序中指定 Windows 文件路径?
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏