gpt4 book ai didi

json - Unmarshal() 正在返回空结构

转载 作者:数据小太阳 更新时间:2023-10-29 03:31:12 25 4
gpt4 key购买 nike

我正在尝试从文件中读取并将其加载到结构 slice 中。如 block 注释中所示,我读入的行已正确加载。

我遇到的问题是 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"

最佳答案

您可以通过将字段的首字母更改为大写来导出 Class 结构中的字段,如下所示:

type Class struct{
Id string
Name string
}

可选地,您还可以像这样向字段添加标签:

type Class struct{
Id string `json: "id"`
Name string `json: "name"`
}

关于 json 包如何处理编码和解码的更多信息可以在 json.Marshal 中找到。和 json.Unmarshal文档分别。

关于json - Unmarshal() 正在返回空结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31899490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com