Maison >développement back-end >Golang >golang json « vrai » n'est pas vrai ?
L'éditeur PHP Xigua répondra aujourd'hui à une question sur Golang : "Json'true' dans golang n'est-il pas vrai ?" Dans golang, la fonction Unmarshal du package json analyse les données JSON dans un corps de structure de langage Go, pour le booléen. tapez des valeurs, « true » n'est pas égal à True. En effet, dans JSON, les valeurs de type booléen sont représentées par « vrai » et « faux » minuscules, tandis que dans le langage Go, les valeurs de type booléen sont représentées par vrai et faux en majuscules. Cette différence subtile peut causer des problèmes et de la confusion, nous devons donc y prêter attention lorsque nous utilisons Golang pour analyser les données JSON.
Je viens d'apprendre le golang. Lors de la conversion de json en struct, obtenir la valeur booléenne est toujours faux. Si mon json « se souvient » : vrai, la valeur booléenne résultante est vraie, comment la résoudre ? Mon code
package main import ( "encoding/json" "fmt" ) type AdminInfoRequest struct { Id uint `json:"id"` UserName string `json:"username"` Password string `json:"password"` CaptchaId string `json:"captcha_id"` Captcha string `json:"captcha"` Remember bool `json:"remember"` Status uint `json:"status"` GroupId uint `json:"group_id"` OldPassword string `json:"old_password"` RePassword string `json:"re_password"` } func main() { var s AdminInfoRequest j := `{"username":"admin","remember":"true"}` json.Unmarshal([]byte(j), &s) fmt.Println(s.UserName) fmt.Println(s.Remember) }
En json, "true"
est une valeur de chaîne. Essayez ceci :
j := `{"username":"admin","remember":true}`
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!