Heim > Artikel > Backend-Entwicklung > json.Unmarshal funktioniert nicht einmal mit exportierten Feldern
Der PHP-Editor Zimo erinnert Sie daran, dass die json.Unmarshal-Funktion auch beim Deserialisieren von JSON nicht ordnungsgemäß funktioniert, wenn exportierte Felder vorhanden sind. Dies liegt daran, dass der JSON-Parser nur exportierte Felder analysieren kann und nicht exportierte Felder nicht erkennen kann. Wenn Sie die Funktion json.Unmarshal zur Deserialisierung verwenden, müssen Sie daher sicherstellen, dass es sich bei den erforderlichen Feldern um exportierte Felder handelt, da sonst die JSON-Daten nicht korrekt analysiert werden. Dies ist ein wichtiger Punkt, den Sie bei der Verwendung der JSON-Serialisierung und -Deserialisierung beachten sollten. Ich hoffe, dass es für Sie hilfreich ist.
JSON-Datei:
{ "student_class": [ { "student_id": 1, "class_id": 2 }, { "student_id": 1, "class_id": 1 },
Struktur:
package studentclass type studentclasses struct { studentclasses []studentclass } type studentclass struct { studentid int `json:"student_id"` classid int `json:"class_id"` }
Meine Funktionen:
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]) } }
Nichts zurückgegeben
Wenn ich json.unmarshall...
之后添加 fmt.println(studentclasses)
时,它返回 {[]}
bin
json.unmarshal Fehler Null
Ich habe dieses Problem untersucht, aber Leute, die das gleiche Problem wie ich haben, sagten, dass die Felder der Struktur nicht exportiert werden. Beispiel: go json.unmarshal funktioniert nicht Ich weiß nicht, wo der Fehler liegt und was ich falsch gemacht habe Bitte helfen Sie mir, dieses Problem zu lösen. Danke euch allen!
Sie haben den JSON-Namen von studentclasses nicht angegeben.
type studentclasses struct { studentclasses []studentclass `json:"student_class"` }
Beispiel:
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) }
Das obige ist der detaillierte Inhalt vonjson.Unmarshal funktioniert nicht einmal mit exportierten Feldern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!