我正在尝试从文件中读取并将其加载到结构切片中。我读入的行已正确加载,如块注释中所示。我遇到的问题是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"}"*/我的问题是两部分,结构成员必须大写,我错过了json: "id"和json: "name"
1 回答
慕码人8056858
TA贡献1803条经验 获得超6个赞
您可以通过将字段Class的第一个字母更改为大写来导出结构中的字段,如下所示:
type Class struct{
Id string
Name string
}
或者,您还可以向字段添加标签,如下所示:
type Class struct{
Id string `json: "id"`
Name string `json: "name"`
}
有关json包如何处理编码和解码的更多信息可以分别在json.Marshal和json.Unmarshaldocs 中找到。
- 1 回答
- 0 关注
- 185 浏览
添加回答
举报
0/150
提交
取消