我有一些问题unmarshalling
这个JSON数据到包含项目结构的项目的Go(Golang)切片:
response := {
"data": [
{
"name": "a",
"products": [
{
"name": "c"
}
]
},
{
"name": "b",
"products": [
{
"name": "d"
}
]
},
{
"name": "c",
"products": [
{
"name": "e"
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
这些是我的结构:
type Item struct {
Name string
Products
}
type Products struct {
Name string
}
Run Code Online (Sandbox Code Playgroud)
切片基本上应该是转换为Go Items切片的"data"属性(它是一个数组)的值.我尝试了下面的内容,但我不断得到一个空数组
var items []Item{}
json.Unmarshal(response, &items)
fmt.Println(items)
Run Code Online (Sandbox Code Playgroud)
您正试图将JSON解组为切片,但该JSON的根是一个对象(您可以告诉,因为JSON以a开头{
,表示对象的开始).您需要考虑该外层:
type Payload struct {
Data []Item
}
var payload Payload
json.Unmarshal(response, &payload)
fmt.Println(payload.Data)
Run Code Online (Sandbox Code Playgroud)