Maison > développement back-end > Golang > le corps du texte

Comment puis-je transmettre l'intégralité de la chaîne json à un champ d'une structure imbriquée lors du déclassement ?

WBOY
Libérer: 2024-02-13 10:27:10
avant
983 Les gens l'ont consulté

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

En PHP, lorsque nous devons transmettre l'intégralité de la chaîne JSON à un champ d'une structure imbriquée, il existe un moyen simple de le faire. Tout d’abord, nous devons nous assurer que nous avons décodé la chaîne JSON en un tableau ou un objet PHP. Nous pouvons ensuite utiliser la fonction json_encode() pour encoder à nouveau le tableau ou l'objet décodé dans une chaîne JSON. Ensuite, nous pouvons attribuer la chaîne JSON codée au champ cible. De cette manière, nous avons réussi à transmettre l’intégralité de la chaîne JSON aux champs de la structure imbriquée. Il s'agit d'une méthode simple mais efficace qui nous permet de traiter facilement les données JSON en PHP.

Contenu de la question

Je dois désassembler une chaîne json plate

data := `{"login":"Nickname","password":"some_pass","newPassword":"new_pass"}`
Copier après la connexion

Entrez UpdatePasswordRequeststructure imbriquée :

type SignInRequest struct {
    Login    string `json:"login"`
    Password string `json:"password"`
}

type UpdatePasswordRequest struct {
    NewPassword string        `json:"newPassword"`
    SignInData  SignInRequest `<tag>`
}
Copier après la connexion

Utilisez tout ce qui est possible <tag> 值将 data 解组到 result

var result UpdatePasswordRequest
json.Unmarshal([]byte(data), &result)
Copier après la connexion

donne vide LoginPassword:

result.SignInData.Login = ""
result.SignInData.Password = ""
Copier après la connexion

Comment dois-je définir <tag> pour obtenir la valeur correcte pour le champ <tag> 以获得 LoginPassword 字段的正确值?

解决方法

如果您要使用 <tag> ?

Solution de contournement

🎜Si vous comptez utiliser le nom de <tag>, votre json doit être imbriqué et non plat, comme ceci : 🎜
data := `{"newPassword":"new_pass", "myTag":{"password":"some_pass", "login":"Nickname"}}`
Copier après la connexion
🎜Si vous ne pouvez pas modifier votre json, il doit composer la structure (c'est-à-dire l'intégration .struct) comme ceci : 🎜
type SignInRequest struct {
    Login    string `json:"login"`
    Password string `json:"password"`
}

type UpdatePasswordRequest struct {
    NewPassword string        `json:"newPassword"`
    SignInRequest
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!