Maison >développement back-end >Golang >json.Unmarshal ne fonctionne pas même avec les champs exportés
L'éditeur PHP Zimo vous rappelle que même lors de la désérialisation de JSON, la fonction json.Unmarshal ne fonctionnera pas correctement s'il y a des champs exportés. En effet, l'analyseur JSON ne peut analyser que les champs exportés et ne peut pas reconnaître les champs non exportés. Par conséquent, lorsque vous utilisez la fonction json.Unmarshal pour la désérialisation, vous devez vous assurer que les champs requis sont des champs exportés, sinon les données JSON ne seront pas analysées correctement. Il s'agit d'un problème important auquel il faut prêter attention lors de l'utilisation de la sérialisation et de la désérialisation JSON. J'espère que cela vous sera utile.
fichier json :
{ "student_class": [ { "student_id": 1, "class_id": 2 }, { "student_id": 1, "class_id": 1 },
Structure :
package studentclass type studentclasses struct { studentclasses []studentclass } type studentclass struct { studentid int `json:"student_id"` classid int `json:"class_id"` }
Mes fonctions :
func Read() { var studentClasses studentClass.StudentClasses jsonFile, err := os.Open("db/student_class.json") if err != nil { fmt.Println(err) } defer jsonFile.Close() byteValue, _ := io.ReadAll(jsonFile) json.Unmarshal(byteValue, &studentClasses) for i := 0; i < len(studentClasses.StudentClasses); i++ { fmt.Println(studentClasses.StudentClasses[i]) } }
Rien retourné
Quand je le suis json.unmarshall...
之后添加 fmt.println(studentclasses)
时,它返回 {[]}
erreur json.unmarshal zéro
J'ai fait des recherches sur ce problème, mais des personnes qui ont le même problème que moi disent que les champs de la structure ne sont pas exportés. Exemple : go json.unmarshal ne fonctionne pas Je ne sais pas où est l'erreur et ce que j'ai fait de mal S'il vous plaît, aidez-moi à résoudre ce problème. Merci à tous!
Vous n'avez pas précisé le nom json des classes d'étudiants.
type studentclasses struct { studentclasses []studentclass `json:"student_class"` }
Exemple :
package main import ( "encoding/json" "fmt" ) type StudentClasses struct { StudentClasses []StudentClass `json:"student_class,omitempty"` } type StudentClass struct { StudentId int `json:"student_id"` ClassId int `json:"class_id"` } func main() { _json := `{ "student_class": [ { "student_id": 1, "class_id": 2 }, { "student_id": 1, "class_id": 1 } ] }` var studentClasses StudentClasses json.Unmarshal([]byte(_json), &studentClasses) fmt.Printf("%+v", studentClasses) }
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!