我正在研究JSON编码和解码,但我被嵌套结构解组所困扰。
我尝试将子结构声明为外部类型,并在父结构中声明显式结构,如下所示:
type WorkingSession struct {
Project Project `json:"project"`
Hours int `json:"hours"`
Date string `json:"date"`
Nested struct{
NestedField string `json:"nested_field"`
} `json:"nested"`
}
type Project struct {
Name string `json:"name"`
}但是当我执行main时:
func main() {
document:= []byte(`
{
"project " : {"name" : "Project 1"},
"hours" : 4,
"date" : "2019-11-03",
"nested" : {"nested_field" : "test"}
}
`)
var ws WorkingSession
err := json.Unmarshal(document, &ws)
log.Println(ws)
if err != nil {
log.Fatal(err.Error())
}
}它不打印project嵌套字段:
2019/11/03 11:24:04 {{} 4 2019-11-03 {test}}怎么啦?
发布于 2019-11-03 18:54:24
您的project密钥中有另一个拼写错误。
您在"project "中有一个空间。去掉空格,它就可以正常工作了。
document:= []byte(`
{
"project" : {"name" : "Project 1"},
"hours" : 4,
"date" : "2019-11-03",
"nested" : {"nested_field" : "test"}
}
`)https://stackoverflow.com/questions/58679242
复制相似问题