我試圖從一個文件讀取並將其加載到一個結構片。我讀入的行加載正確,如塊註釋中所示。Unmarshal()返回空結構
我遇到的問題是class
變量不斷返回空值。我究竟做錯了什麼?
func loadClasses(path string) []Class {
var a []Class
inFile, _ := os.Open(path)
defer inFile.Close()
scanner := bufio.NewScanner(inFile)
scanner.Split(bufio.ScanLines)
var class Class
for scanner.Scan() {
var err = json.Unmarshal(scanner.Bytes(), &class)
if err != nil {
fmt.Print("Error:", err)
} else {
a = append(a, class)
}
}
return a
}
type Class struct {
id string
name string
}
/*
Sample contents
"{"id":124997,"name":"Environmental Sciences"}
{"id":123905,"name":"Physical Education"}
{"id":127834,"name":"Mandarin"}
{"id":123507,"name":"Biology"}
{"id":123883,"name":"German"}
{"id":129148,"name":"German"}
{"id":123545,"name":"Spanish"}"
*/
謝謝isim的幫助。我的問題是兩個部分,該結構成員必須予以資本化,我錯過了json: "id"
和json: "name"
嘗試通過將'id'和'name'的第一個字母大寫,在'Class'中輸出字段。 –
如果解決了您的問題,請考慮將答案標記爲已接受。謝謝。 –
重複的http://stackoverflow.com/questions/26327391/golang-json-marshalstruct-returns –