如何解组嵌套结构JSON

时间:2019-11-03 10:25:52

标签: json go unmarshalling

我正在研究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}}

怎么了?

1 个答案:

答案 0 :(得分:1)

您的From setter BeanOne@7f1302d6 From testMethod BeanOne@7f1302d6 键中还有另一个错字。

您在project中有一个空格。删除空间,它将正常工作。

"project "