Я изучаю кодирование и декодирование 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"`
}
Но когда я выполняю свой основной:
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}}
Что не так?