Go 将二级响应正文解码为结构体
我有两个结构:Go 将二级响应正文解码为结构体,go,Go,我有两个结构: type List struct { ListID string `json:"listid"` Name string `json:"name"` Users []User `json:"users"` } type User struct { Email string `json:"email"` Name string `json:"name"` } 我正在调用一个端点,并成功获得一个响应,其结构如下: { "Results":
type List struct {
ListID string `json:"listid"`
Name string `json:"name"`
Users []User `json:"users"`
}
type User struct {
Email string `json:"email"`
Name string `json:"name"`
}
我正在调用一个端点,并成功获得一个响应,其结构如下:
{
"Results":[
{"Email": "user1@domain.com", "Name": "test1" "State": "Active",…},
{"Email": "user2@domain.com", "Name": "test2" "State": "Active",…},
{"Email": "user3@domain.com", "Name": "test3", "State": "Active",…}
],
"SomeOtherStuff": "email"
}
我正试图将JSON响应解码为我的结构,如下所示:
err = json.NewDecoder(response.Body).Decode(&list.Users)
但是在我的结构中没有要映射到的“Results”属性。如何仅将响应的结果键映射到我的用户结构数组?要获取数据,至少有两个选项: 解码为map[string]接口{}
m := create(map[string]interface{})
err = json.NewDecoder(response.Body).Decode(&m)
然后使用m[“results”]键访问您的用户
或者,您可以解码到容器结构中,然后分配list.Users=container.Results
type Container struct {
Results []User `json:"Results"`
SomeOtherStuff string `json:"SomeOtherStuff"`
}
要了解任意json的结构,请查看 我习惯于第二种方法。非常感谢。