如何解组嵌套结构JSON

如何解组嵌套结构JSON,json,go,unmarshalling,Json,Go,Unmarshalling,我正在研究JSON编码和解码,但我一直停留在嵌套结构解组上 我尝试将子结构声明为外部类型,并在父结构中声明显式结构,如下所示: 类型WorkingSession结构{ 项目`json:“项目”` Hours int`json:“Hours”` 日期字符串`json:“日期”` 嵌套结构{ NestedField字符串`json:“嵌套的_字段”` }`json:“嵌套”` } 类型项目结构{ 名称字符串`json:“名称”` } 但当我执行我的主要任务时: func main(){ 文档:=[

我正在研究JSON编码和解码,但我一直停留在嵌套结构解组上

我尝试将子结构声明为外部类型,并在父结构中声明显式结构,如下所示:

类型WorkingSession结构{
项目`json:“项目”`
Hours int`json:“Hours”`
日期字符串`json:“日期”`
嵌套结构{
NestedField字符串`json:“嵌套的_字段”`
}`json:“嵌套”`
}
类型项目结构{
名称字符串`json:“名称”`
}
但当我执行我的主要任务时:

func main(){
文档:=[]字节(`
{
“项目”:{“名称”:“项目1”},
“小时数”:4,
“日期”:“2019-11-03”,
“嵌套”:{“嵌套_字段”:“测试”}
}
`)
var ws工作会话
err:=json.Unmarshal(文档和ws)
log.Println(ws)
如果错误!=零{
log.Fatal(err.Error())
}
}
它不打印
项目
嵌套字段:

2019/11/03 11:24:04{{{}4 2019-11-03{test}

怎么了?

您的
项目
键中有另一个输入错误

您在
“项目”
中有一个空格。去掉这个空间,它就可以正常工作了

文档:=[]字节(`
{
“项目”:{“名称”:“项目1”},
“小时数”:4,
“日期”:“2019-11-03”,
“嵌套”:{“嵌套_字段”:“测试”}
}
`)

我想你有一个输入错误-
json:“嵌套的”
(Go)->“neted”(实际的json)谢谢!那么
项目
键呢?您还可以使用将JSON转换为go结构;这通常可以防止难以发现的打字错误问题。