我试图从一个文件读取并将其加载到一个结构片。我读入的行加载正确,如块注释中所示。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 –