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

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

WBOY
WBOY转载
2024-02-13 10:27:101034浏览

如何在解组时将整个 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>`
}

使用所有可能的 8bf259f5a6144433b921fb8b7de94970 值将 data 解组到 result

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

给出空的 LoginPassword:

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

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

解决方法

如果您要使用 8bf259f5a6144433b921fb8b7de94970 字段的正确值?

解决方法

🎜如果您要使用 8bf259f5a6144433b921fb8b7de94970 的名称,您的 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删除