首页 > 后端开发 > Golang > 如何在解组时将整个 json 字符串传递到嵌套结构的字段?

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

WBOY
发布: 2024-02-13 10:27:10
转载
1021 人浏览过

如何在解组时将整个 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>`
}
登录后复制

使用所有可能的 <tag> 值将 data 解组到 result

var result UpdatePasswordRequest
json.Unmarshal([]byte(data), &result)
登录后复制

给出空的 LoginPassword:

result.SignInData.Login = ""
result.SignInData.Password = ""
登录后复制

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

解决方法

如果您要使用 <tag> 字段的正确值?

解决方法

🎜如果您要使用 <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
}
登录后复制

以上是如何在解组时将整个 json 字符串传递到嵌套结构的字段?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:stackoverflow.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板