Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 将二级响应正文解码为结构体_Go - Fatal编程技术网

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的结构,请查看

我习惯于第二种方法。非常感谢。