gpt4 book ai didi

go - 将二级响应主体解码为结构

转载 作者:IT王子 更新时间:2023-10-29 01:41:17 25 4
gpt4 key购买 nike

我有 2 个结构:

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)

但是我的结构中没有要映射到的“结果”属性。如何仅将响应的结果键映射到我的用户结构数组?

最佳答案

要获取您的数据,至少有两种选择:

解码为映射[字符串]接口(interface){}

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

关于go - 将二级响应主体解码为结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46777663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com